forked from yui/nodejs-yui3
-
Notifications
You must be signed in to change notification settings - Fork 36
/
yui3-dom.js
58 lines (41 loc) · 1.62 KB
/
yui3-dom.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
52
53
54
55
56
57
/**
* Module loads jsdom & htmlparser support into YUI. Should be autoloaded once DOM is needed.
* @module nodejs-dom
*/
YUI.add('nodejs-dom', function(Y) {
var jsdom = null,
browser = {}, dom;
if (!YUI._jsdom) {
YUI._jsdom = YUI.require('jsdom');
}
jsdom = YUI._jsdom;
dom = jsdom.defaultLevel;
dom.Element.prototype.blur = function() {};
dom.Element.prototype.focus = function() {};
var features = {
FetchExternalResources: [],
ProcessExternalResources : false
}
browser.window = jsdom.jsdom('', null, {features: features}).createWindow();
browser.document = browser.window.document;
browser.document.getElementsByTagName('head').item(0).appendChild(browser.document.createElement('title'));
browser.document.scrollTop = browser.document.documentElement.scrollTop = browser.document.body.scrollTop = 0;
browser.document.scrollLeft = browser.document.documentElement.scrollLeft = browser.document.body.scrollLeft = 0;
browser.window.eval = eval;
browser.self = browser.window;
browser.navigator = browser.window.navigator;
browser.location = browser.window.navigator;
if (Y.config.UA) {
browser.window.navigator.userAgent = Y.config.UA;
}
browser.window.focus = function() {};
browser.window.blur = function() {};
browser.window.scrollTo = function() {};
Y.config.doc = browser.window.document;
Y.config.win = browser.window;
if (Y.config.UA) {
Y.UA = YUI.Env.parseUA();
}
Y.Browser = browser;
Y.processCSS();
}, 'NODE', { requires: ['oop'], after: ['oop'] } );