/
jsdom.js
51 lines (40 loc) · 1.4 KB
/
jsdom.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
var dom = exports.dom = require("./jsdom/level1/core").dom;
exports.defaultLevel = dom.level1.core;
exports.browserAugmentation = require("./jsdom/browser").browserAugmentation;
exports.windowAugmentation = require("./jsdom/browser").windowAugmentation;
var createWindow = exports.createWindow = require("./jsdom/browser").createWindow;
exports.jsdom = function (level) {
level = level || exports.defaultLevel;
var doc = new (level.Document)();
doc.createWindow = function() {
var window = exports.windowAugmentation(level, { document: doc });
if (window &&
window.document &&
window.document.createWindow)
{
delete window.document.createWindow;
}
return window;
}
return doc;
}
exports.jQueryify = function (window /* path [optional], callback */) {
if (!window || !window.document) { return; }
var args = Array.prototype.slice.call(arguments),
callback = (typeof(args[args.length - 1]) === 'function') && args.pop(),
path = undefined,
jQueryTag = window.document.createElement("script");
if (args.length > 1 && typeof(args[1] === 'string')) {
path = args[1];
}
path = path ? "file://" + path : 'http://code.jquery.com/jquery-1.4.2.js';
jQueryTag.src = path;
jQueryTag.onload = function() {
if (this.readyState === 'complete') {
if (callback) {
callback(window, window.jQuery);
}
}
};
return window;
};