最简单的方法是使用
execCommand(),该命令具有在所有现代浏览器中更改背景颜色的命令。
以下应该在任何选择上做您想要的,包括跨越多个元素的选择。在非IE浏览器中,它会打开
designMode,应用背景色,然后
designMode再次关闭。
更新
在IE 9中修复。
function makeEditableAndHighlight(colour) { var range, sel = window.getSelection(); if (sel.rangeCount && sel.getRangeAt) { range = sel.getRangeAt(0); } document.designMode = "on"; if (range) { sel.removeAllRanges(); sel.addRange(range); } // Use HiliteColor since some browsers apply BackColor to the whole block if (!document.execCommand("HiliteColor", false, colour)) { document.execCommand("BackColor", false, colour); } document.designMode = "off";}function highlight(colour) { var range, sel; if (window.getSelection) { // IE9 and non-IE try { if (!document.execCommand("BackColor", false, colour)) { makeEditableAndHighlight(colour); } } catch (ex) { makeEditableAndHighlight(colour) } } else if (document.selection && document.selection.createRange) { // IE <= 8 case range = document.selection.createRange(); range.execCommand("BackColor", false, colour); }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)