envjs19 0.3.8.20101029121421
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.jslintrbrc +30 -0
- data/.project +17 -0
- data/CHANGELOG.rdoc +57 -0
- data/DTD/xhtml-lat1.ent +196 -0
- data/DTD/xhtml-special.ent +80 -0
- data/DTD/xhtml-symbol.ent +237 -0
- data/DTD/xhtml.soc +14 -0
- data/DTD/xhtml1-frameset.dtd +1235 -0
- data/DTD/xhtml1-strict.dtd +978 -0
- data/DTD/xhtml1-transitional.dtd +1201 -0
- data/DTD/xhtml1.dcl +192 -0
- data/Makefile +7 -0
- data/Manifest.txt +280 -0
- data/README.rdoc +65 -0
- data/Rakefile +196 -0
- data/Wakefile +11 -0
- data/bin/envjsrb +257 -0
- data/build.properties +9 -0
- data/build.xml +247 -0
- data/gm/jquery.js +6002 -0
- data/gm/mainx.js +2648 -0
- data/gm/sensx.js +135 -0
- data/gm/t.js +6 -0
- data/gm/x.html +76 -0
- data/htmlparser/BrowserTreeBuilder.java +456 -0
- data/htmlparser/README +34 -0
- data/htmlparser/build.sh +38 -0
- data/jsl/jsl +0 -0
- data/jsl/jsl.default.conf +129 -0
- data/jsl/jsl.exe +0 -0
- data/lib/envjs.rb +35 -0
- data/lib/envjs/event_loop.js +206 -0
- data/lib/envjs/net.rb +3 -0
- data/lib/envjs/net/cgi.rb +94 -0
- data/lib/envjs/net/file.rb +69 -0
- data/lib/envjs/options.rb +11 -0
- data/lib/envjs/runtime.rb +346 -0
- data/lib/envjs/tempfile.rb +24 -0
- data/licenses/GPL-LICENSE.txt +278 -0
- data/licenses/MIT-LICENSE.txt +20 -0
- data/src/base64.js +80 -0
- data/src/build.js +6 -0
- data/src/cruft/bad.html +24 -0
- data/src/cruft/dom.js +606 -0
- data/src/cruft/element.js +297 -0
- data/src/cruft/good.html +30 -0
- data/src/cruft/good.js +32 -0
- data/src/cruft/internal.js +81 -0
- data/src/cruft/parser.js +458 -0
- data/src/css/properties.js +293 -0
- data/src/css/rule.js +22 -0
- data/src/css/sizzle.js +717 -0
- data/src/css/stylesheet.js +52 -0
- data/src/dom/attr.js +55 -0
- data/src/dom/cdatasection.js +31 -0
- data/src/dom/characterdata.js +119 -0
- data/src/dom/comment.js +30 -0
- data/src/dom/doctype.js +9 -0
- data/src/dom/document.js +1023 -0
- data/src/dom/dom.js +134 -0
- data/src/dom/element.js +217 -0
- data/src/dom/entities.js +273 -0
- data/src/dom/exception.js +28 -0
- data/src/dom/fragment.js +37 -0
- data/src/dom/implementation.js +140 -0
- data/src/dom/instruction.js +51 -0
- data/src/dom/namednodemap.js +374 -0
- data/src/dom/namespace.js +50 -0
- data/src/dom/node.js +618 -0
- data/src/dom/nodelist.js +195 -0
- data/src/dom/parser.js +1207 -0
- data/src/dom/text.js +73 -0
- data/src/event/event.js +47 -0
- data/src/event/mouseevent.js +4 -0
- data/src/event/uievent.js +8 -0
- data/src/html/a.js +110 -0
- data/src/html/anchor.js +80 -0
- data/src/html/area.js +57 -0
- data/src/html/base.js +26 -0
- data/src/html/blockquote-q.js +19 -0
- data/src/html/body.js +19 -0
- data/src/html/button.js +21 -0
- data/src/html/canvas.js +14 -0
- data/src/html/col-colgroup.js +49 -0
- data/src/html/collection.js +72 -0
- data/src/html/cookie.js +153 -0
- data/src/html/del-ins.js +25 -0
- data/src/html/div.js +28 -0
- data/src/html/document.js +364 -0
- data/src/html/element.js +382 -0
- data/src/html/fieldset.js +19 -0
- data/src/html/form.js +484 -0
- data/src/html/frame.js +89 -0
- data/src/html/frameset.js +25 -0
- data/src/html/head.js +44 -0
- data/src/html/html.js +0 -0
- data/src/html/htmlparser.js +340 -0
- data/src/html/iframe.js +26 -0
- data/src/html/image.js +0 -0
- data/src/html/img.js +62 -0
- data/src/html/input-elements.js +307 -0
- data/src/html/input.js +65 -0
- data/src/html/label.js +26 -0
- data/src/html/legend.js +19 -0
- data/src/html/link.js +82 -0
- data/src/html/map.js +22 -0
- data/src/html/meta.js +37 -0
- data/src/html/object.js +89 -0
- data/src/html/optgroup.js +25 -0
- data/src/html/option.js +103 -0
- data/src/html/param.js +38 -0
- data/src/html/script.js +122 -0
- data/src/html/select.js +132 -0
- data/src/html/style.js +31 -0
- data/src/html/table.js +199 -0
- data/src/html/tbody-thead-tfoot.js +92 -0
- data/src/html/td-th.js +18 -0
- data/src/html/textarea.js +31 -0
- data/src/html/title.js +20 -0
- data/src/html/tr.js +114 -0
- data/src/intro.js +141 -0
- data/src/outro.js +70 -0
- data/src/parser/html5.detailed.js +10762 -0
- data/src/parser/html5.min.js +503 -0
- data/src/parser/html5.pretty.js +10815 -0
- data/src/parser/intro.js +42 -0
- data/src/parser/outro.js +9 -0
- data/src/platform/core.js +323 -0
- data/src/platform/johnson.js +484 -0
- data/src/platform/rhino.js +327 -0
- data/src/platform/static/intro.js +41 -0
- data/src/platform/static/outro.js +30 -0
- data/src/profile/aop.js +238 -0
- data/src/profile/profile.js +402 -0
- data/src/serializer/xml.js +21 -0
- data/src/svg/animatedstring.js +25 -0
- data/src/svg/document.js +25 -0
- data/src/svg/element.js +22 -0
- data/src/svg/locatable.js +17 -0
- data/src/svg/rect.js +18 -0
- data/src/svg/rectelement.js +24 -0
- data/src/svg/stylable.js +49 -0
- data/src/svg/svgelement.js +22 -0
- data/src/svg/transformable.js +15 -0
- data/src/window/css.js +15 -0
- data/src/window/dialog.js +16 -0
- data/src/window/document.js +28 -0
- data/src/window/event.js +265 -0
- data/src/window/history.js +62 -0
- data/src/window/location.js +156 -0
- data/src/window/navigator.js +48 -0
- data/src/window/screen.js +53 -0
- data/src/window/timer.js +21 -0
- data/src/window/window.js +284 -0
- data/src/window/xhr.js +135 -0
- data/src/xpath/expression.js +49 -0
- data/src/xpath/implementation.js +2505 -0
- data/src/xpath/result.js +67 -0
- data/src/xpath/util.js +551 -0
- data/src/xpath/xmltoken.js +149 -0
- data/src/xslt/COPYING +34 -0
- data/src/xslt/ajaxslt-0.8.1/AUTHORS +1 -0
- data/src/xslt/ajaxslt-0.8.1/ChangeLog +136 -0
- data/src/xslt/ajaxslt-0.8.1/Makefile +49 -0
- data/src/xslt/ajaxslt-0.8.1/README +102 -0
- data/src/xslt/ajaxslt-0.8.1/TODO +15 -0
- data/src/xslt/ajaxslt-0.8.1/dom.js +566 -0
- data/src/xslt/ajaxslt-0.8.1/dom_unittest.html +24 -0
- data/src/xslt/ajaxslt-0.8.1/dom_unittest.js +131 -0
- data/src/xslt/ajaxslt-0.8.1/simplelog.js +79 -0
- data/src/xslt/ajaxslt-0.8.1/test/xpath.html +18 -0
- data/src/xslt/ajaxslt-0.8.1/test/xpath_script.js +45 -0
- data/src/xslt/ajaxslt-0.8.1/test/xslt.html +58 -0
- data/src/xslt/ajaxslt-0.8.1/test/xslt_script.js +33 -0
- data/src/xslt/ajaxslt-0.8.1/unittestsuite.html +26 -0
- data/src/xslt/ajaxslt-0.8.1/xmltoken.js +149 -0
- data/src/xslt/ajaxslt-0.8.1/xmltoken_unittest.html +18 -0
- data/src/xslt/ajaxslt-0.8.1/xmltoken_unittest.js +811 -0
- data/src/xslt/ajaxslt-0.8.1/xpath_unittest.html +39 -0
- data/src/xslt/ajaxslt-0.8.1/xpath_unittest.js +557 -0
- data/src/xslt/ajaxslt-0.8.1/xpathdebug.js +234 -0
- data/src/xslt/ajaxslt-0.8.1/xslt_unittest.html +138 -0
- data/src/xslt/ajaxslt-0.8.1/xslt_unittest.js +68 -0
- data/src/xslt/implementation.js +625 -0
- data/src/xslt/processor.js +37 -0
- data/src/xslt/util.js +449 -0
- data/test/base64.js +80 -0
- data/test/call-load-test.js +15 -0
- data/test/data.js +45 -0
- data/test/debug.js +53 -0
- data/test/firebug/errorIcon.png +0 -0
- data/test/firebug/firebug.css +209 -0
- data/test/firebug/firebug.html +23 -0
- data/test/firebug/firebug.js +672 -0
- data/test/firebug/firebugx.js +10 -0
- data/test/firebug/infoIcon.png +0 -0
- data/test/firebug/warningIcon.png +0 -0
- data/test/fixtures/html/events.html +171 -0
- data/test/fixtures/html/iframe1.html +46 -0
- data/test/fixtures/html/iframe1a.html +46 -0
- data/test/fixtures/html/iframe2.html +45 -0
- data/test/fixtures/html/iframe3.html +28 -0
- data/test/fixtures/html/iframeN.html +57 -0
- data/test/fixtures/html/malformed.html +181 -0
- data/test/fixtures/html/scope.html +81 -0
- data/test/fixtures/html/trivial.html +19 -0
- data/test/fixtures/html/with_js.html +26 -0
- data/test/fixtures/images/icon-blue.png +0 -0
- data/test/fixtures/js/external_script.js +1 -0
- data/test/fixtures/js/script.js +1 -0
- data/test/fixtures/js/script_error.js +2 -0
- data/test/foo.html +8 -0
- data/test/foo.js +40 -0
- data/test/html/events.html +171 -0
- data/test/html/iframe1.html +46 -0
- data/test/html/iframe1a.html +46 -0
- data/test/html/iframe2.html +45 -0
- data/test/html/iframe3.html +30 -0
- data/test/html/iframeN.html +57 -0
- data/test/html/malformed.html +181 -0
- data/test/html/scope.html +87 -0
- data/test/html/script.js +1 -0
- data/test/html/trivial.html +19 -0
- data/test/html/with_js.html +26 -0
- data/test/index.html +328 -0
- data/test/java-prototype.js +9 -0
- data/test/jquery.js +6002 -0
- data/test/primary-tests.js +26 -0
- data/test/prototype-test.js +13 -0
- data/test/qunit.js +61 -0
- data/test/qunit/qunit/qunit.css +17 -0
- data/test/qunit/qunit/qunit.js +997 -0
- data/test/scope.html +19 -0
- data/test/scope.rb +24 -0
- data/test/smp/dmathieu/index.html +8 -0
- data/test/specs/dist/env.spec.js +1534 -0
- data/test/specs/envjs.spec.css +46 -0
- data/test/specs/parser/html.js +31 -0
- data/test/specs/parser/spec.html +40 -0
- data/test/specs/parser/xml.js +31 -0
- data/test/specs/qunit.bdd.js +210 -0
- data/test/specs/qunit.css +17 -0
- data/test/specs/qunit.js +997 -0
- data/test/specs/template/spec-0.js +31 -0
- data/test/specs/template/spec-1.js +31 -0
- data/test/specs/template/spec.html +40 -0
- data/test/specs/window/css.js +23 -0
- data/test/specs/window/dialog.js +25 -0
- data/test/specs/window/document.js +23 -0
- data/test/specs/window/event.js +25 -0
- data/test/specs/window/history.js +34 -0
- data/test/specs/window/location.js +34 -0
- data/test/specs/window/navigator.js +71 -0
- data/test/specs/window/screen.js +42 -0
- data/test/specs/window/spec.html +48 -0
- data/test/specs/window/timer.js +26 -0
- data/test/specs/window/window.js +53 -0
- data/test/specs/xhr/spec.html +47 -0
- data/test/specs/xhr/xhr.js +31 -0
- data/test/test.js +10 -0
- data/test/unit/dom.js +44 -0
- data/test/unit/elementmembers.js +92 -0
- data/test/unit/events.js +195 -0
- data/test/unit/fixtures/external_script.js +1 -0
- data/test/unit/form.js +40 -0
- data/test/unit/iframe.js +234 -0
- data/test/unit/insertion.js +23 -0
- data/test/unit/multi-window.js +212 -0
- data/test/unit/nu.validator.js +34 -0
- data/test/unit/onload.js +90 -0
- data/test/unit/parser.js +122 -0
- data/test/unit/prototypecompat.js +22 -0
- data/test/unit/proxy.js +6 -0
- data/test/unit/scope.js +209 -0
- data/test/unit/timer.js +115 -0
- data/test/unit/window.js +57 -0
- data/test/x.js +1 -0
- data/test/y.js +1 -0
- metadata +367 -0
data/src/html/script.js
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
$debug("Defining HTMLScriptElement");
|
2
|
+
/*
|
3
|
+
* HTMLScriptElement - DOM Level 2
|
4
|
+
*/
|
5
|
+
var HTMLScriptElement = function(ownerDocument) {
|
6
|
+
this.HTMLElement = HTMLElement;
|
7
|
+
this.HTMLElement(ownerDocument);
|
8
|
+
};
|
9
|
+
HTMLScriptElement.prototype = new HTMLElement;
|
10
|
+
__extend__(HTMLScriptElement.prototype, {
|
11
|
+
setAttribute: function(name,value) {
|
12
|
+
var result = HTMLElement.prototype.setAttribute.apply(this,arguments);
|
13
|
+
// print("set src",this,this.executed);
|
14
|
+
if (name === "src" && !this.executed && value && !value.match(/^\s*$/)) {
|
15
|
+
var pn = this;
|
16
|
+
while(pn.parentNode) {
|
17
|
+
pn = pn.parentNode;
|
18
|
+
}
|
19
|
+
if(pn === this.ownerDocument) {
|
20
|
+
this.executed = true;
|
21
|
+
var $env = this.ownerDocument._parentWindow.$envx;
|
22
|
+
// print("on src change");
|
23
|
+
$env.loadLocalScript(this);
|
24
|
+
}
|
25
|
+
}
|
26
|
+
return result;
|
27
|
+
},
|
28
|
+
|
29
|
+
appendChild: function(node,ref) {
|
30
|
+
var result = HTMLElement.prototype.appendChild.apply(this,arguments);
|
31
|
+
// print("check",this,this.ownerDocument.in_inner_html);
|
32
|
+
if (!this.executed) {
|
33
|
+
var pn = this;
|
34
|
+
while(pn.parentNode) {
|
35
|
+
pn = pn.parentNode;
|
36
|
+
}
|
37
|
+
if(pn === this.ownerDocument) {
|
38
|
+
var text = this.text;
|
39
|
+
// print("T:", text);
|
40
|
+
if (text && !text.match(/^\s*$/)) {
|
41
|
+
this.executed = true;
|
42
|
+
var $env = this.ownerDocument._parentWindow.$envx;
|
43
|
+
// print("on text change");
|
44
|
+
$env.loadInlineScript(this);
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
return result;
|
49
|
+
},
|
50
|
+
|
51
|
+
get text(){
|
52
|
+
// text of script is in a child node of the element
|
53
|
+
// scripts with < operator must be in a CDATA node
|
54
|
+
for (var i=0; i<this.childNodes.length; i++) {
|
55
|
+
if (this.childNodes[i].nodeType == DOMNode.CDATA_SECTION_NODE) {
|
56
|
+
return this.childNodes[i].nodeValue;
|
57
|
+
}
|
58
|
+
}
|
59
|
+
// otherwise there will be a text node containing the script
|
60
|
+
if (this.childNodes[0] && this.childNodes[0].nodeType == DOMNode.TEXT_NODE) {
|
61
|
+
return this.childNodes[0].nodeValue;
|
62
|
+
}
|
63
|
+
return this.nodeValue;
|
64
|
+
|
65
|
+
},
|
66
|
+
set text(value){
|
67
|
+
while (this.firstChild) {
|
68
|
+
this.removeChild(this.firstChild);
|
69
|
+
}
|
70
|
+
this.appendChild(this.ownerDocument.createTextNode(value));
|
71
|
+
},
|
72
|
+
get htmlFor(){
|
73
|
+
return this.getAttribute('for');
|
74
|
+
},
|
75
|
+
set htmlFor(value){
|
76
|
+
this.setAttribute('for',value);
|
77
|
+
},
|
78
|
+
get event(){
|
79
|
+
return this.getAttribute('event');
|
80
|
+
},
|
81
|
+
set event(value){
|
82
|
+
this.setAttribute('event',value);
|
83
|
+
},
|
84
|
+
get charset(){
|
85
|
+
return this.getAttribute('charset');
|
86
|
+
},
|
87
|
+
set charset(value){
|
88
|
+
this.setAttribute('charset',value);
|
89
|
+
},
|
90
|
+
get defer(){
|
91
|
+
return this.getAttribute('defer');
|
92
|
+
},
|
93
|
+
set defer(value){
|
94
|
+
this.setAttribute('defer',value);
|
95
|
+
},
|
96
|
+
get src(){
|
97
|
+
return this.getAttribute('src');
|
98
|
+
},
|
99
|
+
set src(value){
|
100
|
+
this.setAttribute('src',value);
|
101
|
+
},
|
102
|
+
get type(){
|
103
|
+
return this.getAttribute('type');
|
104
|
+
},
|
105
|
+
set type(value){
|
106
|
+
this.setAttribute('type',value);
|
107
|
+
},
|
108
|
+
onload: function(event){
|
109
|
+
return __eval__(this.getAttribute('onload')||'', this);
|
110
|
+
},
|
111
|
+
onerror: function(event){
|
112
|
+
return __eval__(this.getAttribute('onerror')||'', this);
|
113
|
+
}
|
114
|
+
});
|
115
|
+
|
116
|
+
// $w.HTMLScriptElement = HTMLScriptElement;
|
117
|
+
|
118
|
+
// Local Variables:
|
119
|
+
// espresso-indent-level:4
|
120
|
+
// c-basic-offset:4
|
121
|
+
// tab-width:4
|
122
|
+
// End:
|
data/src/html/select.js
ADDED
@@ -0,0 +1,132 @@
|
|
1
|
+
$debug("Defining HTMLSelectElement");
|
2
|
+
/*
|
3
|
+
* HTMLSelectElement - DOM Level 2
|
4
|
+
*/
|
5
|
+
var HTMLSelectElement = function(ownerDocument) {
|
6
|
+
this.HTMLTypeValueInputs = HTMLTypeValueInputs;
|
7
|
+
this.HTMLTypeValueInputs(ownerDocument);
|
8
|
+
|
9
|
+
this._oldIndex = -1;
|
10
|
+
};
|
11
|
+
HTMLSelectElement.prototype = new HTMLTypeValueInputs;
|
12
|
+
__extend__(HTMLSelectElement.prototype, inputElements_dataProperties);
|
13
|
+
__extend__(HTMLButtonElement.prototype, inputElements_size);
|
14
|
+
__extend__(HTMLSelectElement.prototype, inputElements_onchange);
|
15
|
+
__extend__(HTMLSelectElement.prototype, inputElements_focusEvents);
|
16
|
+
__extend__(HTMLSelectElement.prototype, {
|
17
|
+
setAttributeNS : function(namespaceURI, qualifiedName, value) {
|
18
|
+
if (namespaceURI) {
|
19
|
+
throw new Error("unexpected namespaceURI");
|
20
|
+
}
|
21
|
+
this.setAttribute(qualifiedName, value);
|
22
|
+
},
|
23
|
+
getAttributeNS : function(namespaceURI, qualifiedName) {
|
24
|
+
if (namespaceURI) {
|
25
|
+
throw new Error("unexpected namespaceURI");
|
26
|
+
}
|
27
|
+
return this.getAttribute(qualifiedName);
|
28
|
+
},
|
29
|
+
setAttribute: function(name, value){
|
30
|
+
// This is a workaround for now for copying nodes in
|
31
|
+
if (name === "type") {
|
32
|
+
if (!this.ownerDocument._performingImportNodeOperation) {
|
33
|
+
throw new Error("cannot set readonly attribute: "+name);
|
34
|
+
}
|
35
|
+
} else if (name === "multiple") {
|
36
|
+
HTMLInputCommon.prototype.
|
37
|
+
setAttribute.call(this, "type", value ? "select-multiple" : "select-one");
|
38
|
+
HTMLInputCommon.prototype.setAttribute.call(this, "multiple", !!value);
|
39
|
+
} else if (name === "value") {
|
40
|
+
var options = this.options,
|
41
|
+
i, index;
|
42
|
+
for (i=0; i<options.length; i++) {
|
43
|
+
if (options[i].value == value) {
|
44
|
+
index = i;
|
45
|
+
break;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
if (index !== undefined) {
|
49
|
+
HTMLInputCommon.prototype.setAttribute.call(this, "value", value);
|
50
|
+
this.selectedIndex = index;
|
51
|
+
|
52
|
+
var event = this.ownerDocument.createEvent();
|
53
|
+
event.initEvent("change");
|
54
|
+
this.dispatchEvent( event );
|
55
|
+
}
|
56
|
+
} else {
|
57
|
+
HTMLInputCommon.prototype.setAttribute.apply(this, arguments);
|
58
|
+
}
|
59
|
+
},
|
60
|
+
getAttribute: function(name){
|
61
|
+
if (name === "type") {
|
62
|
+
return HTMLInputCommon.prototype.getAttribute.apply(this, arguments) || this.multple ? "select-multiple" : "select-one";
|
63
|
+
} else if (name === "value") {
|
64
|
+
var value = HTMLInputCommon.prototype.getAttribute.apply(this, arguments);
|
65
|
+
if (value === undefined || value === null) {
|
66
|
+
var index = this.selectedIndex;
|
67
|
+
return (index != -1) ? this.options[index].value :
|
68
|
+
( this.multiple ? "" :
|
69
|
+
( this.options[0] ? this.options[0].value : "" ) );
|
70
|
+
} else {
|
71
|
+
return value;
|
72
|
+
}
|
73
|
+
} else {
|
74
|
+
return HTMLInputCommon.prototype.getAttribute.apply(this, arguments);
|
75
|
+
}
|
76
|
+
},
|
77
|
+
// over-ride the value setter in HTMLTypeValueInputs
|
78
|
+
set value(newValue) {
|
79
|
+
this.setAttribute("value",newValue);
|
80
|
+
},
|
81
|
+
get value() {
|
82
|
+
return this.getAttribute("value");
|
83
|
+
},
|
84
|
+
get length(){
|
85
|
+
return this.options.length;
|
86
|
+
},
|
87
|
+
get multiple(){
|
88
|
+
return this.getAttribute('multiple');
|
89
|
+
},
|
90
|
+
set multiple(value){
|
91
|
+
this.setAttribute('multiple',value);
|
92
|
+
},
|
93
|
+
get options(){
|
94
|
+
return this.getElementsByTagName('option');
|
95
|
+
},
|
96
|
+
get selectedIndex(){
|
97
|
+
var options = this.options;
|
98
|
+
for(var i=0;i<options.length;i++){
|
99
|
+
if(options[i].selected){
|
100
|
+
return i;
|
101
|
+
}
|
102
|
+
};
|
103
|
+
return -1;
|
104
|
+
},
|
105
|
+
|
106
|
+
set selectedIndex(value) {
|
107
|
+
var i;
|
108
|
+
for (i=0; i<this.options.length; i++) {
|
109
|
+
this.options[i].selected = this.multiple ?
|
110
|
+
(i == Number(value) || this.options[i].selected) :
|
111
|
+
(i == Number(value));
|
112
|
+
}
|
113
|
+
},
|
114
|
+
get type(){
|
115
|
+
return this.getAttribute('type');
|
116
|
+
},
|
117
|
+
|
118
|
+
add : function(){
|
119
|
+
__add__(this);
|
120
|
+
},
|
121
|
+
remove : function(){
|
122
|
+
__remove__(this);
|
123
|
+
}
|
124
|
+
});
|
125
|
+
|
126
|
+
// $w.HTMLSelectElement = HTMLSelectElement;
|
127
|
+
|
128
|
+
// Local Variables:
|
129
|
+
// espresso-indent-level:4
|
130
|
+
// c-basic-offset:4
|
131
|
+
// tab-width:4
|
132
|
+
// End:
|
data/src/html/style.js
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
$debug("Defining HTMLStyleElement");
|
2
|
+
/*
|
3
|
+
* HTMLStyleElement - DOM Level 2
|
4
|
+
*/
|
5
|
+
var HTMLStyleElement = function(ownerDocument) {
|
6
|
+
this.HTMLElement = HTMLElement;
|
7
|
+
this.HTMLElement(ownerDocument);
|
8
|
+
};
|
9
|
+
HTMLStyleElement.prototype = new HTMLElement;
|
10
|
+
__extend__(HTMLStyleElement.prototype, {
|
11
|
+
get disabled(){
|
12
|
+
return this.getAttribute('disabled');
|
13
|
+
},
|
14
|
+
set disabled(value){
|
15
|
+
this.setAttribute('disabled',value);
|
16
|
+
},
|
17
|
+
get media(){
|
18
|
+
return this.getAttribute('media');
|
19
|
+
},
|
20
|
+
set media(value){
|
21
|
+
this.setAttribute('media',value);
|
22
|
+
},
|
23
|
+
get type(){
|
24
|
+
return this.getAttribute('type');
|
25
|
+
},
|
26
|
+
set type(value){
|
27
|
+
this.setAttribute('type',value);
|
28
|
+
}
|
29
|
+
});
|
30
|
+
|
31
|
+
// $w.HTMLStyleElement = HTMLStyleElement;
|
data/src/html/table.js
ADDED
@@ -0,0 +1,199 @@
|
|
1
|
+
$debug("Defining HTMLTableElement");
|
2
|
+
/*
|
3
|
+
* HTMLTableElement - DOM Level 2
|
4
|
+
* Implementation Provided by Steven Wood
|
5
|
+
*/
|
6
|
+
var HTMLTableElement = function(ownerDocument) {
|
7
|
+
this.HTMLElement = HTMLElement;
|
8
|
+
this.HTMLElement(ownerDocument);
|
9
|
+
|
10
|
+
};
|
11
|
+
|
12
|
+
HTMLTableElement.prototype = new HTMLElement;
|
13
|
+
__extend__(HTMLTableElement.prototype, {
|
14
|
+
|
15
|
+
get tFoot() {
|
16
|
+
//tFoot returns the table footer.
|
17
|
+
return this.getElementsByTagName("tfoot")[0];
|
18
|
+
},
|
19
|
+
|
20
|
+
createTFoot : function () {
|
21
|
+
var tFoot = this.tFoot;
|
22
|
+
|
23
|
+
if (!tFoot) {
|
24
|
+
tFoot = this.ownerDocument.createElement("tfoot");
|
25
|
+
this.appendChild(tFoot);
|
26
|
+
}
|
27
|
+
|
28
|
+
return tFoot;
|
29
|
+
},
|
30
|
+
|
31
|
+
deleteTFoot : function () {
|
32
|
+
var foot = this.tFoot;
|
33
|
+
if (foot) {
|
34
|
+
foot.parentNode.removeChild(foot);
|
35
|
+
}
|
36
|
+
},
|
37
|
+
|
38
|
+
get tHead() {
|
39
|
+
//tHead returns the table head.
|
40
|
+
return this.getElementsByTagName("thead")[0];
|
41
|
+
},
|
42
|
+
|
43
|
+
createTHead : function () {
|
44
|
+
var tHead = this.tHead;
|
45
|
+
|
46
|
+
if (!tHead) {
|
47
|
+
tHead = this.ownerDocument.createElement("thead");
|
48
|
+
this.insertBefore(tHead, this.firstChild);
|
49
|
+
}
|
50
|
+
|
51
|
+
return tHead;
|
52
|
+
},
|
53
|
+
|
54
|
+
deleteTHead : function () {
|
55
|
+
var head = this.tHead;
|
56
|
+
if (head) {
|
57
|
+
head.parentNode.removeChild(head);
|
58
|
+
}
|
59
|
+
},
|
60
|
+
|
61
|
+
appendChild : function (child) {
|
62
|
+
|
63
|
+
var tagName;
|
64
|
+
if(child&&child.nodeType==DOMNode.ELEMENT_NODE){
|
65
|
+
tagName = child.tagName.toLowerCase();
|
66
|
+
if (tagName === "tr") {
|
67
|
+
// need an implcit <tbody> to contain this...
|
68
|
+
if (!this.currentBody) {
|
69
|
+
this.currentBody = this.ownerDocument.createElement("tbody");
|
70
|
+
|
71
|
+
DOMNode.prototype.appendChild.apply(this, [this.currentBody]);
|
72
|
+
}
|
73
|
+
|
74
|
+
return this.currentBody.appendChild(child);
|
75
|
+
|
76
|
+
} else if (tagName === "tbody" || tagName === "tfoot" && this.currentBody) {
|
77
|
+
this.currentBody = child;
|
78
|
+
return DOMNode.prototype.appendChild.apply(this, arguments);
|
79
|
+
|
80
|
+
} else {
|
81
|
+
return DOMNode.prototype.appendChild.apply(this, arguments);
|
82
|
+
}
|
83
|
+
}else{
|
84
|
+
//tables can still have text node from white space
|
85
|
+
return DOMNode.prototype.appendChild.apply(this, arguments);
|
86
|
+
}
|
87
|
+
},
|
88
|
+
|
89
|
+
get tBodies() {
|
90
|
+
return new HTMLCollection(this.getElementsByTagName("tbody"));
|
91
|
+
|
92
|
+
},
|
93
|
+
|
94
|
+
get rows() {
|
95
|
+
return new HTMLCollection(this.getElementsByTagName("tr"));
|
96
|
+
},
|
97
|
+
|
98
|
+
insertRow : function (idx) {
|
99
|
+
if (idx === undefined) {
|
100
|
+
throw new Error("Index omitted in call to HTMLTableElement.insertRow ");
|
101
|
+
}
|
102
|
+
|
103
|
+
var rows = this.rows,
|
104
|
+
numRows = rows.length,
|
105
|
+
node,
|
106
|
+
inserted,
|
107
|
+
lastRow;
|
108
|
+
|
109
|
+
if (idx > numRows) {
|
110
|
+
throw new Error("Index > rows.length in call to HTMLTableElement.insertRow");
|
111
|
+
}
|
112
|
+
|
113
|
+
var inserted = this.ownerDocument.createElement("tr");
|
114
|
+
// If index is -1 or equal to the number of rows,
|
115
|
+
// the row is appended as the last row. If index is omitted
|
116
|
+
// or greater than the number of rows, an error will result
|
117
|
+
if (idx === -1 || idx === numRows) {
|
118
|
+
this.appendChild(inserted);
|
119
|
+
} else {
|
120
|
+
rows[idx].parentNode.insertBefore(inserted, rows[idx]);
|
121
|
+
}
|
122
|
+
|
123
|
+
return inserted;
|
124
|
+
},
|
125
|
+
|
126
|
+
deleteRow : function (idx) {
|
127
|
+
var elem = this.rows[idx];
|
128
|
+
elem.parentNode.removeChild(elem);
|
129
|
+
},
|
130
|
+
|
131
|
+
get summary() {
|
132
|
+
return this.getAttribute("summary");
|
133
|
+
},
|
134
|
+
|
135
|
+
set summary(summary) {
|
136
|
+
this.setAttribute("summary", summary);
|
137
|
+
},
|
138
|
+
|
139
|
+
get align() {
|
140
|
+
return this.getAttribute("align");
|
141
|
+
},
|
142
|
+
|
143
|
+
set align(align) {
|
144
|
+
this.setAttribute("align", align);
|
145
|
+
},
|
146
|
+
|
147
|
+
|
148
|
+
get bgColor() {
|
149
|
+
return this.getAttribute("bgColor");
|
150
|
+
},
|
151
|
+
|
152
|
+
set bgColor(bgColor) {
|
153
|
+
return this.setAttribute("bgColor", bgColor);
|
154
|
+
},
|
155
|
+
|
156
|
+
get cellPadding() {
|
157
|
+
return this.getAttribute("cellPadding");
|
158
|
+
},
|
159
|
+
|
160
|
+
set cellPadding(cellPadding) {
|
161
|
+
return this.setAttribute("cellPadding", cellPadding);
|
162
|
+
},
|
163
|
+
|
164
|
+
|
165
|
+
get cellSpacing() {
|
166
|
+
return this.getAttribute("cellSpacing");
|
167
|
+
},
|
168
|
+
|
169
|
+
set cellSpacing(cellSpacing) {
|
170
|
+
this.setAttribute("cellSpacing", cellSpacing);
|
171
|
+
},
|
172
|
+
|
173
|
+
get frame() {
|
174
|
+
return this.getAttribute("frame");
|
175
|
+
},
|
176
|
+
|
177
|
+
set frame(frame) {
|
178
|
+
this.setAttribute("frame", frame);
|
179
|
+
},
|
180
|
+
|
181
|
+
get rules() {
|
182
|
+
return this.getAttribute("rules");
|
183
|
+
},
|
184
|
+
|
185
|
+
set rules(rules) {
|
186
|
+
this.setAttribute("rules", rules);
|
187
|
+
},
|
188
|
+
|
189
|
+
get width() {
|
190
|
+
return this.getAttribute("width");
|
191
|
+
},
|
192
|
+
|
193
|
+
set width(width) {
|
194
|
+
this.setAttribute("width", width);
|
195
|
+
}
|
196
|
+
|
197
|
+
});
|
198
|
+
|
199
|
+
// $w.HTMLTableElement = HTMLTableElement;
|