function doRangeAnchor(elem, start, end) {
range = document.createRange();
range.setStart(elem.firstChild, start);
end = end < elem.lastChild.length ? end : elem.lastChild.length
range.setEnd(elem.lastChild, end);
anchor = document.createElement('a');
anchor.href = "javascript: void(0);";
range.surroundContents(anchor);
}
function undoRangeAnchor() { var pnode = anchor.parentNode; var range2 = document.createRange();
range2.selectNodeContents(anchor); var contents = range2.extractContents();
pnode.replaceChild(contents,anchor);
}
function serializeNode(node) { var s; var isElem = false;
if (node.nodeName == "#text") {
if (node.nodeValue) {
s = node.nodeValue
} else {
s = "<#empty>"
}
} else {
isElem = true;
s = "<" + node.nodeName + ">";
}
for (var j = 0; j < node.childNodes.length; ++j) {
s += serializeNode(node.childNodes[j]);
}
if (isElem) {
s += "" + node.nodeName + ">";
}
return s;
}
function runTest(elementID, start, end, expected1, expected2, expected3) { var e = document.getElementById(elementID);
doRangeAnchor(e, start, end);
is(serializeNode(e), expected1, "Wrong range behavior!");
document.getElementById('log').textContent += serializeNode(e) + "\n";
undoRangeAnchor();
is(serializeNode(e), expected2, "Wrong range behavior!");
document.getElementById('log').textContent += serializeNode(e) + "\n";
doRangeAnchor(e, start, end);
is(serializeNode(e), expected3, "Wrong range behavior!");
document.getElementById('log').textContent += serializeNode(e) + "\n";
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.