function ensureNobodyHasFocus() {
document.activeElement.blur();
}
function IsCommandEnabled(command) {
ensureNobodyHasFocus();
// non-editable div: should return false unless alwaysEnabled
window.getSelection().selectAllChildren(gBlock1);
is(
document.queryCommandEnabled(command),
alwaysEnabledCommands.includes(command) && document.queryCommandSupported(command), "'" + command + "' should not be enabled on a non-editable block."
);
// editable div: should return true if it's supported
window.getSelection().selectAllChildren(gBlock2);
is(
document.queryCommandEnabled(command),
document.queryCommandSupported(command), "'" + command + "' should be enabled on an editable block."
);
}
function runTests() { var i, commands;
gBlock1 = document.querySelector("#content section blockquote");
gBlock2 = document.querySelector("#content [contenteditable] blockquote");
// common commands: test with and without "styleWithCSS"
commands = [ "bold", "italic", "underline", "strikeThrough", "subscript", "superscript", "foreColor", "backColor", "hiliteColor", "fontName", "fontSize", "justifyLeft", "justifyCenter", "justifyRight", "justifyFull", "indent", "outdent", "insertOrderedList", "insertUnorderedList", "insertParagraph", "heading", "formatBlock", "contentReadOnly", "createLink", "decreaseFontSize", "increaseFontSize", "insertHTML", "insertHorizontalRule", "insertImage", "removeFormat", "selectAll", "styleWithCSS",
];
document.execCommand("styleWithCSS", false, false);
for (i = 0; i < commands.length; i++)
IsCommandEnabled(commands[i]);
document.execCommand("styleWithCSS", false, true);
for (i = 0; i < commands.length; i++)
IsCommandEnabled(commands[i]);
// Mozilla-specific stuff
commands = ["enableInlineTableEditing", "enableObjectResizing", "insertBrOnReturn"];
for (i = 0; i < commands.length; i++)
IsCommandEnabled(commands[i]);
// These are privileged, and available only to chrome.
ensureNobodyHasFocus();
window.getSelection().selectAllChildren(gBlock2);
commands = ["paste"];
for (i = 0; i < commands.length; i++) {
is(document.queryCommandEnabled(commands[i]), false, "Command should not be enabled for non-privileged code");
is(SpecialPowers.wrap(document).queryCommandEnabled(commands[i]), true, "Command should be enabled for privileged code");
is(document.execCommand(commands[i], false, false), false, "Should return false: " + commands[i]);
is(SpecialPowers.wrap(document).execCommand(commands[i], false, false), true, "Should return true: " + commands[i]);
}
// delete/undo/redo -- we have to execute this commands because:
// * there's nothing to undo if we haven't modified the selection first
// * there's nothing to redo if we haven't undone something first
commands = ["delete", "undo", "redo"];
for (i = 0; i < commands.length; i++) {
IsCommandEnabled(commands[i]);
document.execCommand(commands[i], false, false);
}
// done
SimpleTest.finish();
}
</script>
</pre>
</body>
</html>
¤ 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.0.28Bemerkung:
(vorverarbeitet)
¤
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 ist noch experimentell.