};
window.__defineSetter__("location", function(url){
- window.document = new DOMDocument(url);
+ window.document = new DOMDocument(
+ new Packages.org.xml.sax.InputSource(\r new java.io.InputStreamReader(
+ new java.io.FileInputStream(url))));
});
window.__defineGetter__("location", function(url){
return makeNode( this._dom.getDocumentElement() );
},
get ownerDocument(){
- return this;
+ return null;
},
addEventListener: function(){},
removeEventListener: function(){},
window.DOMElement = function(elem){
this._dom = elem;
+ this.style = {};
+
+ // Load CSS info
+ var styles = (this.getAttribute("style") || "").split(/\s*;\s*/);
+
+ for ( var i = 0; i < styles.length; i++ ) {
+ var style = styles[i].split(/\s*:\s*/);
+ if ( style.length == 2 )
+ this.style[ style[0] ] = style[1];
+ }
};
DOMElement.prototype = extend( new DOMNode(), {
var nodes = this.ownerDocument.importNode(
new DOMDocument( new java.io.ByteArrayInputStream(
(new java.lang.String("<wrap>" + html + "</wrap>"))
- .getBytes())).documentElement, true).childNodes;
+ .getBytes("UTF8"))).documentElement, true).childNodes;
while (this.firstChild)
this.removeChild( this.firstChild );
offsetHeight: 0,
offsetWidth: 0,
- get disabled() { return !!this.getAttribute("disabled"); },
+ get disabled() {
+ var val = this.getAttribute("disabled");
+ return val != "false" && !!val;
+ },
set disabled(val) { return this.setAttribute("disabled",val); },
- get checked() { return !!this.getAttribute("checked"); },
+ get checked() {
+ var val = this.getAttribute("checked");
+ return val != "false" && !!val;
+ },
set checked(val) { return this.setAttribute("checked",val); },
- get selected() { return !!this.getAttribute("selected"); },
+ get selected() {
+ if ( !this._selectDone ) {
+ this._selectDone = true;
+
+ if ( this.nodeName == "OPTION" && !this.parentNode.getAttribute("multiple") ) {
+ var opt = this.parentNode.getElementsByTagName("option");
+
+ if ( this == opt[0] ) {
+ var select = true;
+
+ for ( var i = 1; i < opt.length; i++ )
+ if ( opt[i].selected ) {
+ select = false;
+ break;
+ }
+
+ if ( select )
+ this.selected = true;
+ }
+ }
+ }
+
+ var val = this.getAttribute("selected");
+ return val != "false" && !!val;
+ },
set selected(val) { return this.setAttribute("selected",val); },
get className() { return this.getAttribute("class") || ""; },
get type() { return this.getAttribute("type") || ""; },
set type(val) { return this.setAttribute("type",val); },
+ get value() { return this.getAttribute("value") || ""; },
+ set value(val) { return this.setAttribute("value",val); },
+
get src() { return this.getAttribute("src") || ""; },
set src(val) { return this.setAttribute("src",val); },
getAttribute: function(name){
return this._dom.hasAttribute(name) ?
- this._dom.getAttribute(name) :
+ new String( this._dom.getAttribute(name) ) :
null;
},
setAttribute: function(name,value){
submit: function(){},
focus: function(){},
blur: function(){},
- elements: []
+ get elements(){
+ return this.getElementsByTagName("*");
+ }
});
// Helper method for extending one object with another