jldom

0.1.4 • Public • Published

An implementation of the DOM in CoffeeScript/JavaScript

Intended for use in NodeJS.

I haven't checked the actual DOM compliance, but everything you need is there:

  • Full CSS3 support via NWMatcher.
  • A very tiny HTML parser.
  • DOM-compliant event binding and triggering (bubbling, cancelling, etc).
  • Coming soon: (optional) Mutation Events.

This is not a fork of jsdom.

It assumes the document is going to act like it would in a browser (e.g. it automatically gets a head and body).

No attempt has been made to support XML or Xpath or anything exotic.

Example:

document = require('jldom').createDocument()

document.body.innerHTML = "<div>Hello, World.</div>"

document.toString()
	=== "<html><head/><body><div>Hello, World.</div></body></html>"

document.querySelector("div").toString()
	=== "<div>Hello, World.</div>"

I built this to generate server-side HTML from a NodeJS application. Benchmarks reveal that this is a waste of time. I currently use it to unit test other javascript code that needs a reasonably well-behaved DOM to interact with.

Install:

npm install jldom

Or:

git clone git://github.com/jldailey/jldom.git
cd jldom
make

Dependencies (0)

    Dev Dependencies (1)

    Package Sidebar

    Install

    npm i jldom

    Weekly Downloads

    41

    Version

    0.1.4

    License

    none

    Last publish

    Collaborators

    • jldailey