0.6.0 • Published 8 years ago
jsdom-browser v0.6.0
jsdom-browser

This module simulates behaviors of a Web browser with jsdom, and will provides implementations about layouts of view elements and windows.
This module simulates Chrome on macOS for the time being, but is implemented so as to be configurable and extendable to other browsers.
Install
$ npm install jsdom-browser --save-devUsage
Create a browser
const Browser = require('jsdom-browser')
const browser = new Browser()Open a blank window
const window0 = browser.newWindow()
window0.name = 'win0'Get a window config
const windowConfig0 = browser.getConfig(window0)
windowConfig0.top = 200
windowConfig0.left = 300
window0.screenX // => 300
window0.screenY // => 200Get a window already opened
window0 === browser.getWindow(0) // by index
window0 === browser.getWidnow('win0') // by name
window0 === browser.getWindow(windowConfig0) // by window configOpen a window with loading a page content
browser.addContent('http://www.example.com', '<p>Hello!</p>')
const window1 = browser.openWindow('http://www.example.com')
window1.addEventListener('load', event => {
// Called after loading content.
})
const config1 = browser.getConfig(window1)
config1.on('load', (err, win, cfg) => {
// Called after loading content.
})Open a child window
browser.addContent('http://sample.net', '<html> ... </html>')
const window2 = window.open('http://sample.net', '_blank', 'top=100,left=200,height=300,width=400')
window2.addEventListener('load', event => {
// Called after loading content.
})
const config2 = browser.getConfig(window2)
config2.on('load', (err, win, cfg) => {
// Called after loading content.
})Progress
- Screen ✓
- ScreenOrientation (Not yet)
- Window
- screen ✓
- innerWidth, innerHeight, outerWidth, outerHeight, screenX, screenY, devicePixelRatio ✓
- scrollX, scrollY, pageXOffset, pageYOffset ✓
- moveTo, moveBy, resizeTo, resizeBy ✓
- scroll, scrollTo, scrollBy ✓
- open, close ✓
- matchMedia (Not yet)
- And planning more HTMLElements ...
References
License
Copyright (C) 2017 Takayuki Sato
This program is free software under MIT License. See the file LICENSE in this distribution for more details.