SlimerJS 0.7 has been released on June 10, 2013.
Many improvements have been made to have a better compatibility with
PhantomJS, although it is not 100% compatible yet.
- Implementation of require.paths, a list of paths where modules can be found (CommonJS modules 1.1 specification)
- Implementation of require.globals, an object which can contain properties that will be
shared between modules as global variables/functions/objects.
- Implementation of require.extensions, to declare specific loaders corresponding to some file extensions
- Implementation of phantom.defaultPageSettings. Note that settings are not supported
yet by the webpage module.
- callbacks webpage.onLoadStarted and webpage.onLoadFinished receive two additional
parameters: the url that is loaded, and a boolean true if the loaded page is in a frame.
- Support of webpage.onCallback and window.callPhantom()
- Support of webpage.onError
- Support of webpage.onNavigationRequested and webpage.navigationLocked
- Support of webpage.customHeaders
- Support of webpage.settings.userAgent
- Support of webpage.openUrl()
- Implementation of setters of webpage.content and webpage.frameContent
- Implementation of webpage.setContent()
- Implementation of webpage.release() (deprecated method in PhantomJS, replaced by webpage.close().
- Issue #36: Support of scripts and modules written with the Coffee-Script language
- Support of JSON modules
- Issue #32: a new profile is created each time we launch SlimerJS, to not have preferences,
cookies or other data created by a previous launch. It is still possible to use a
permanent profile to keep data between two launchs.
- new option on the commande line: --error-log-file=filename to log errors in a file
- when we launched SlimerJS from a symbolic link, there was an error “application.ini path not recognized”
- issue #15: Slimerjs freezed on JS errors, when calling webpage.evaluate(). A default error handler
is used now.
- issue #36: Exit code of Firefox/Xulrunner should be used as exit code of the slimerjs shell script
Fixed PhantomJS conformance issues
- Modules have now access to global objects like window, phantom, document...
- Changed fs.workingDirectory from a method to a property, even if it violates the
CommonsJS filesystem specification.
- webpage.injectJs() and phantom.injectJs() now return a boolean and try to
load the given file from the current working dir before from the library path, like
- callbacks webpage.onLoadStarted and webpage.onLoadFinished are called when
a frame is loading a new document inside the web page.
- Issue #11: support of all possible arguments on webpage.open()
- The webserver guesses now the content type of some files (images..)
Missing APIS in SlimerJS 0.7
Here are the PhantomJS APIs that are missing in SlimerJS 0.7. Of course, their
implementation is planed in future releases.
- most of options for the command line are not supported
- no API to manage HTTP cookies, although cookies are supported (they are stored
- no support of the webpage.offlineStorage* properties, although offlineStorage
is supported natively and usable by a web page
- no API to manage child windows
- no support of settings on the webpage object
- no support of file uploading in web page (webpage.uploadFile(), webpage.onFilePicker..)
- no support of Ghost Driver
You can read the compatibility table to know details.