remove dom.setText, use classList, document.head

This commit is contained in:
DanyaPostfactum 2013-02-06 12:54:20 +10:00
commit ebe03bbe70

View file

@ -39,72 +39,86 @@ exports.createElement = function(tag, ns) {
document.createElement(tag); document.createElement(tag);
}; };
exports.setText = function(elem, text) { if (typeof DOMTokenList === 'function') {
if (elem.innerText !== undefined) { exports.hasCssClass = function(el, name) {
elem.innerText = text; return el.classList.contains(name);
} };
if (elem.textContent !== undefined) {
elem.textContent = text;
}
};
exports.hasCssClass = function(el, name) { exports.addCssClass = function(el, name) {
var classes = el.className.split(/\s+/g); el.classList.add(name);
return classes.indexOf(name) !== -1; };
};
/* exports.removeCssClass = function(el, name) {
* Add a CSS class to the list of classes on the given node el.classList.remove(name);
*/
exports.addCssClass = function(el, name) {
if (!exports.hasCssClass(el, name)) {
el.className += " " + name;
} }
};
/* exports.toggleCssClass = function(el, name) {
* Remove a CSS class from the list of classes on the given node el.classList.toggle(name);
*/ }
exports.removeCssClass = function(el, name) {
var classes = el.className.split(/\s+/g); exports.setCssClass = function(el, name, include) {
while (true) { el.classList[include ? 'add' : 'remove'](name);
var index = classes.indexOf(name); }
if (index == -1) { }
break; else {
exports.hasCssClass = function(el, name) {
var classes = el.className.split(/\s+/g);
return classes.indexOf(name) !== -1;
};
/*
* Add a CSS class to the list of classes on the given node
*/
exports.addCssClass = function(el, name) {
if (!exports.hasCssClass(el, name)) {
el.className += " " + name;
} }
classes.splice(index, 1); };
}
el.className = classes.join(" ");
};
exports.toggleCssClass = function(el, name) { /*
var classes = el.className.split(/\s+/g), add = true; * Remove a CSS class from the list of classes on the given node
while (true) { */
var index = classes.indexOf(name); exports.removeCssClass = function(el, name) {
if (index == -1) { var classes = el.className.split(/\s+/g);
break; while (true) {
var index = classes.indexOf(name);
if (index == -1) {
break;
}
classes.splice(index, 1);
} }
add = false; el.className = classes.join(" ");
classes.splice(index, 1); };
}
if(add)
classes.push(name);
el.className = classes.join(" "); exports.toggleCssClass = function(el, name) {
return add; var classes = el.className.split(/\s+/g), add = true;
}; while (true) {
var index = classes.indexOf(name);
if (index == -1) {
break;
}
add = false;
classes.splice(index, 1);
}
if(add)
classes.push(name);
/* el.className = classes.join(" ");
* Add or remove a CSS class from the list of classes on the given node return add;
* depending on the value of <tt>include</tt> };
*/
exports.setCssClass = function(node, className, include) { /*
if (include) { * Add or remove a CSS class from the list of classes on the given node
exports.addCssClass(node, className); * depending on the value of <tt>include</tt>
} else { */
exports.removeCssClass(node, className); exports.setCssClass = function(node, className, include) {
} if (include) {
}; exports.addCssClass(node, className);
} else {
exports.removeCssClass(node, className);
}
};
}
exports.hasCssString = function(id, doc) { exports.hasCssString = function(id, doc) {
var index = 0, sheets; var index = 0, sheets;
@ -143,7 +157,7 @@ exports.importCssString = function importCssString(cssText, id, doc) {
if (id) if (id)
style.id = id; style.id = id;
var head = doc.getElementsByTagName("head")[0] || doc.documentElement; var head = doc.head || doc.getElementsByTagName("head")[0] || doc.documentElement;
head.appendChild(style); head.appendChild(style);
} }
}; };
@ -156,7 +170,7 @@ exports.importCssStylsheet = function(uri, doc) {
link.rel = 'stylesheet'; link.rel = 'stylesheet';
link.href = uri; link.href = uri;
var head = doc.getElementsByTagName("head")[0] || doc.documentElement; var head = doc.head || doc.getElementsByTagName("head")[0] || doc.documentElement;
head.appendChild(link); head.appendChild(link);
} }
}; };
@ -273,7 +287,7 @@ exports.getInnerText = function(el) {
if (document.body && "textContent" in document.body) if (document.body && "textContent" in document.body)
return el.textContent; return el.textContent;
else else
return el.innerText || el.textContent || ""; return el.innerText;
}; };
exports.getParentWindow = function(document) { exports.getParentWindow = function(document) {