mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-28 19:37:32 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
97
dom/xml/test/old/books/books.js
Normal file
97
dom/xml/test/old/books/books.js
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
|
||||
// An inefficient, but effective bubble sort
|
||||
function sort(collection, key)
|
||||
{
|
||||
var i, j;
|
||||
var count = collection.length;
|
||||
var parent, child;
|
||||
|
||||
for (i = count-1; i >= 0; i--) {
|
||||
for (j = 1; j <= i; j++) {
|
||||
if (collection[j-1][key] > collection[j][key]) {
|
||||
// Move the item both in the local array and
|
||||
// in the tree
|
||||
child = collection[j];
|
||||
parent = child.parentNode;
|
||||
|
||||
collection[j] = collection[j-1];
|
||||
collection[j-1] = child;
|
||||
|
||||
parent.removeChild(child);
|
||||
parent.insertBefore(child, collection[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set user properties on the nodes in the collection
|
||||
// based on information found in its children. For example,
|
||||
// make a property "Author" based on the content of the
|
||||
// "Author" element found in the childNode list of the node.
|
||||
// This makes later sorting more efficient
|
||||
function collectInfo(nodes, propNames)
|
||||
{
|
||||
var i, j, k;
|
||||
var ncount = nodes.length;
|
||||
var pcount = propNames.length;
|
||||
|
||||
for (i = 0; i < ncount; i++) {
|
||||
var node = nodes[i];
|
||||
var childNodes = node.childNodes;
|
||||
var ccount = childNodes.length;
|
||||
|
||||
for (j = 0; j < ccount; j++) {
|
||||
var child = childNodes[j];
|
||||
|
||||
if (child.nodeType == Node.ELEMENT_NODE) {
|
||||
var tagName = child.tagName;
|
||||
|
||||
for (k = 0; k < pcount; k++) {
|
||||
var prop = propNames[k];
|
||||
if (prop == tagName) {
|
||||
node[prop] = child.firstChild.data;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var enabled = true;
|
||||
function toggleStyleSheet()
|
||||
{
|
||||
if (enabled) {
|
||||
document.styleSheets[2].disabled = true;
|
||||
}
|
||||
else {
|
||||
document.styleSheets[2].disabled = false;
|
||||
}
|
||||
|
||||
enabled = !enabled;
|
||||
}
|
||||
|
||||
// XXX This is a workaround for a bug where
|
||||
// changing the disabled state of a stylesheet can't
|
||||
// be done in an event handler. For now, we do it
|
||||
// in a zero-delay timeout.
|
||||
function initiateToggle()
|
||||
{
|
||||
setTimeout(toggleStyleSheet, 0);
|
||||
}
|
||||
|
||||
var sortableProps = new Array("Author", "Title", "ISBN");
|
||||
var books = new Array();
|
||||
|
||||
// We uppercase the tagName as a workaround for a bug
|
||||
// that loses the original case of the tag.
|
||||
var bookset = document.getElementsByTagName("Book");
|
||||
|
||||
// We need to create a "non-live" array to operate on. Since
|
||||
// we'll be moving things around in this array, we can't use
|
||||
// the read-only, live one returned by getElementsByTagName.
|
||||
for (var i=0; i < bookset.length; i++) {
|
||||
books[i] = bookset[i];
|
||||
}
|
||||
|
||||
collectInfo(books, sortableProps);
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue