| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
BooJS allows you to execute javascript on the command line as if you were in a browser. It has well defined behavior that follows unix conventions and is built on-top of PhantomJS.
#Setup
gem install boojsboojs [-e statement] [-t timeout] [-v file] [file]The following options are available:
Open a javascript pipe that reads from stdin, writes via console.log to stdout, prints exceptions via stderr, and exits with a return code of 1 if there are errors.
(sh)>boojs
console.log("Hello world!"); //Output to $stdout
console.error("Goodbye cruel world!"); //Output to $stderrSame as boojs but read the javascript file before reading from stdin. (i.e. preload a javascript file into your environment)
(sh)>boojs jquery.js
$("body").html("<h1>Hello</h1>");
console.log($("body").html())Execute a javascript statement, and then immediately exit. Exceptions will return 1.
(sh)>boojs -e "console.log(document);"Execute a javascript statement, and then wait 4 seconds before exiting. Exceptions will return 1 and end execution early.
(sh)>boojs -e "console.log(document);" -t 4Verify that a file contains no javascript runtime initialization errors
(sh)>boojs -v code.js
(sh)>echo $?
0Every restart of boojs will cause localStorage to be reset. There is a bug where multiple instances of boojs will all share the same instance of localStorage, so if you open multiple copies of boojs, you are guaranteed to delete localStorage of all boojs instances. You may restart the boojs intsance without deleting local storage via sending $__RESTART__ directly to stdin of the boojs instance as it's own line. You may then wait for the reply $__RESTART_OK__. At this point, boojs will have restarted with a fresh instance except that localStorage will still be intact.
**You must fully drain the stdout pipe of boojs before attempting to $__RESTART__. If you fail to do so, your commands may execute after $__RESTART__ has executed because $__RESTART__ is executed asynchronously. You should send booPing(), wait for a reply of pong, and then send the $__RESTART__ command.
No, they are for different things. BooJS gives you the full DOM, you can call document in BooJS and import arbitrary browser javascript libraries.
There are a myriad issues with the PhantomJS repl; most notably, the PhantomJS repl:
I don't think any of this is the PhantomJS's team fault; it's just not their focus or target.
When you need to test javascript code that needs to run in a browser but don't necessarily need to test the UI components.
boojs is released under the MIT license. See LICENSE for details.
| Back | FazBrowse Home | New Git URL |