JSDOM is intended to be platform independent and as light as possible, while completely adhering to the W3C DOM specifications.
The project started out as a way to replicate basic HTML DOM structures inside Node.js and has quickly expanded into a library for completely porting the WHATWG DOM and HTML standards to JavaScript.
This includes support for replicating HTML tags, executing external scripts, emulating browsers, and special attention to working with jQuery.
Usage instructions are included with the package's README file.
What is new in this release:
- Fixed to work with browserify again (regression introduced in 5.4.0).
What is new in version 5.4.3:
- Fixed to work with browserify again (regression introduced in 5.4.0).
What is new in version 4.0.1:
- This release relies on the newly-overhauled vm module of io.js to eliminate the Contextify native module dependency.
What is new in version 3.1.2:
- Some fixes to the NOT_IMPLEMENTED internal helper, which should eliminate the cases where calling e.g. window.alert crashes your application.
- Fixed a global variable leak when triggering NOT_IMPLEMENTED methods, like window.location.reload.
- Fixed the URL resolution algorithm to handle about:blank properly on all systems (previously it only worked on Windows). This is especially important since as of 3.0.0 the default URL is about:blank.
- Fixed, at least partially, the ability to run <script>s inside a browserified jsdom instance.
What is new in version 3.0.1:
- Fixed errors when serializing text nodes (possibly only occurred when inside <template>).
- Handle null bytes being passed to jsdom.env's autodetecting capabilities.
- Handle empty HTML strings being passed to jsdom.env's HTML option.
What is new in version 2.0.0:
- Removed:
- jsdom.level, and the level option from jsdom.jsdom.
- Changed:
- The nonstandard Element.prototype.matchesSelector method was replaced with the standard Element.prototype.matches. (KenPowers)
- Fixed:
- querySelector correctly coerces its argument to a string (1.2.2 previously fixed this for querySelectorAll).
What is new in version 1.5.0:
- Added:
- Missing window.console methods, viz. assert, clear, count, debug, group, groupCollapse, groupEnd, table, time, timeEnd, and trace. All except assert do nothing for now, but see #979 for future plans.
- Tweak:
- Make childNodes, and the many places in jsdom that use it, much faster.
What is new in version 1.0.0:
- Removed:
- nonstandard EventTarget.getListeners; EventTarget.forwardIterator; EventTarget.backwardIterator; EventTarget.singleIterator.
- Nonstandard document.innerHTML.
- Fixed:
- Value and defaultValue properties of a HTMLInputElement are now correctly synced to the value="" attribute.
What is new in version 0.10.5:
- Fix:
- The list of void elements has been updated to match the latest HTML spec.
- When serializing void elements, don't include a /: i.e. the result is now <br> instead of <br />.
What is new in version 0.10.2:
- Fixed:
- Using jQuery 1.11's show() method would cause an error to be thrown.
- window.location properties were not updating correctly after using pushState or replaceState.
What is new in version 0.8.11:
- Added:
- Store and use cookies between requests; customizable cookie jars also possible.
- Fixed:
- Attributes named the same as prototype properties of NamedNodeMap no longer break jsdom.
- removeAttributeNS should not throw on missing attributes.
What is new in version 0.8.8:
- Fixed:
- Avoid repeated NodeList.prototype.length calculation, for a speed improvement.
What is new in version 0.8.7:
- Added:
- host property to HTMLAnchorElement.
What is new in version 0.8.4:
- Added:
- Typed array constructors on the window.
- Fixed:
- querySelector and querySelectorAll should be on the prototypes of Element and Document, not own-properties.
What is new in version 0.8.1:
- Fixed:
- A casing issue that prevented jsdom from loading on Unix and Solaris systems.
- window.location.replace was broken.
What is new in version 0.7.0:
- Fixed:
- Errors raised in scripts are now passed to jsdom.env's callback.
- Set window.location.href correctly when using jsdom.env to construct a window from a URL, when that URL causes a redirect.
- Added:
- A more complete and accurate window.location object, which includes firing hashchange events when the hash is changed.
- When using a non-implemented feature, mention exactly what it was that is not implemented in the error message.
What is new in version 0.6.3:
- Fix:
- Better automatic detection of URLs vs. HTML fragments when using jsdom.env.
What is new in version 0.6.1:
- Make the code parseable with Esprima.
- Use the correct package.json field "repository" instead of "repositories" to prevent npm warnings.
What is new in version 0.5.6:
- Fixes:
- On <event> properties are correctly updated when using setAttributeNode, attributeNode.value =, removeAttribute, and removeAttributeNode; before it only worked with setAttribute.
- HTMLCollections now have named properties based on their members' id and name attributes, e.g. form.elements.inputId is now present.
What is new in version 0.5.1:
- Fixed:
- selectedIndex now changes correctly in response to <option> elements being selected. This makes <select> elements actually work like you would want, especially with jQuery.
- Checked works correctly on radio buttons, i.e. only one can be checked and clicking on one does not uncheck it. Previously they worked just like checkboxes.
- click() on <input> elements now fires a click event.
Requirements:
- Node.js
Bình luận không