JSPM

jsdom

0.1.15
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 34703073
  • Score
    100M100P100Q218749F

CommonJS implementation of the DOM intended to be platform independent and as minimal/light as possible while completely adhering to the w3c DOM specifications.

Package Exports

  • jsdom
  • jsdom/lib/jsdom
  • jsdom/lib/jsdom/browser
  • jsdom/lib/jsdom/browser/domtohtml
  • jsdom/lib/jsdom/browser/index
  • jsdom/lib/jsdom/level1/core
  • jsdom/lib/jsdom/level2/core
  • jsdom/lib/jsdom/level2/html
  • jsdom/package
  • jsdom/package.json

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (jsdom) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

jsdom

CommonJS implementation of the DOM intended to be platform independent and as minimal/light as possible while completely adhering to the w3c DOM specifications.

Currently Implemented and w3c Compliant:

  • DOM Level 1 (html/svg/xml)
  • Browser (BOM) Augmentation (getElementsByClassName, getElementById, etc..)

Note: Running the tests now requires mjsunit.runner

see: testlog for w3 test compliance

see: plan for roadmap and thoughts about this project

see: project site for additional information

Examples

Creating a document-less window

var jsdom  = require("jsdom"),
    window = jsdom.createWindow();

console.log(window.document);
// output: undefined

Creating a document

var jsdom = require("jsdom"),
    doc   = new (jsdom.dom.level1.core.Document)();
console.log(doc.nodeName);
// outputs: #document

Creating a browser-like BOM/DOM/Window

var jsdom  = require("./lib/jsdom").jsdom,
    window = jsdom("<html><head></head><body>hello world</body></html>").createWindow();

console.log(window.document.innerHTML);
// output: '<html><head></head><body>hello world</body></html>'

console.log(window.innerWidth)
// output: 1024

console.log(typeof window.document.getElementsByClassName);
// outputs: function

Load arbitrary scripts

var jsdom  = require("jsdom").jsdom,
    window = jsdom().createWindow(),
    script = window.document.createElement("script");

script.src = 'http://code.jquery.com/jquery-1.4.2.js';

script.onload = function() {
  if (this.readyState === 'complete') {
    console.log(window.jQuery.fn.jquery);
    // outputs: 1.4.2
  }
};

jQueryify

var jsdom  = require("jsdom"),
    window = jsdom.jsdom().createWindow();

jsdom.jQueryify(window, "http://code.jquery.com/jquery-1.4.2.min.js" , function() {
  window.jQuery('body').append(<div class='testing'>Hello World, It works</div>");
  console.log(window.jQuery(".testing").text());
});