यह अन्य ब्राउज़र से अधिक IE में ऐसा करने की वजह से IE के TextRange
वस्तुओं एक execCommand()
विधि है, जिसका अर्थ है कि एक कमांड निष्पादित किया जा सकता आसान है चयन को बदलने की आवश्यकता के बिना दस्तावेज़ के एक भाग पर और अस्थायी रूप से designMode
सक्षम करें (जो आपको अन्य ब्राउज़रों में करना है)।
function execCommandOnElement(el, commandName, value) {
if (typeof value == "undefined") {
value = null;
}
if (typeof window.getSelection != "undefined") {
// Non-IE case
var sel = window.getSelection();
// Save the current selection
var savedRanges = [];
for (var i = 0, len = sel.rangeCount; i < len; ++i) {
savedRanges[i] = sel.getRangeAt(i).cloneRange();
}
// Temporarily enable designMode so that
// document.execCommand() will work
document.designMode = "on";
// Select the element's content
sel = window.getSelection();
var range = document.createRange();
range.selectNodeContents(el);
sel.removeAllRanges();
sel.addRange(range);
// Execute the command
document.execCommand(commandName, false, value);
// Disable designMode
document.designMode = "off";
// Restore the previous selection
sel = window.getSelection();
sel.removeAllRanges();
for (var i = 0, len = savedRanges.length; i < len; ++i) {
sel.addRange(savedRanges[i]);
}
} else if (typeof document.body.createTextRange != "undefined") {
// IE case
var textRange = document.body.createTextRange();
textRange.moveToElementText(el);
textRange.execCommand(commandName, false, value);
}
}
उदाहरण::
var testDiv = document.getElementById("test");
execCommandOnElement(testDiv, "Bold");
execCommandOnElement(testDiv, "ForeColor", "red");
स्रोत
2011-03-06 12:07:54
आप कब ट्रिगर करने के लिए आदेश चाहते हैं? जब div क्लिक किया जाता है? –
@ पेक्का, क्या आप अधिक – mkotwd
को समझा सकते हैं किसी तत्व को कमांड को समझना समझ में नहीं आता है। आप वास्तव में क्या करना चाहते हैं? –