Javascript 在Internet Explorer中,粘贴HTML是否会导致意外行为?
我有以下HTML w/Javascript代码(注意:这只适用于Internet Explorer):Javascript 在Internet Explorer中,粘贴HTML是否会导致意外行为?,javascript,html,internet-explorer,Javascript,Html,Internet Explorer,我有以下HTML w/Javascript代码(注意:这只适用于Internet Explorer): 函数changeIt(){ var startTag=“”; var endTag=“”; var htmlStr=document.selection.createRange().htmlText; document.selection.createRange().pasteHTML(startTag+htmlStr+endTag); } .h{背景:黄色;} 八十七年 要使用此功能,只
函数changeIt(){
var startTag=“”;
var endTag=“”;
var htmlStr=document.selection.createRange().htmlText;
document.selection.createRange().pasteHTML(startTag+htmlStr+endTag);
}
.h{背景:黄色;}
八十七年
要使用此功能,只需突出显示屏幕中显示的文本的任何部分,然后单击“更改”按钮。现在,奇怪的行为:
如果你突出显示单词“Four”(带有粗体标记),并在四个后面加上任何其他内容,它将使整个突出显示变为粗体,这不是我想要的。换句话说,如果用鼠标高亮显示:
四七
<span class='h' id='123abc'><b>Four</b> score and seven</span>
然后点击“更改”按钮,输出:
四七
<span class='h' id='123abc'><b>Four</b> score and seven</span>
4分7秒
我希望它输出以下内容:
四七
<span class='h' id='123abc'><b>Four</b> score and seven</span>
4分7秒
我做错了什么?我将用Javascript或jQuery获取答案
注意:这里的背景色似乎没有正确显示,但我的观点是,如果我不希望整个选择变为粗体。如果您使用的是示例中的
TextRange
,您可以使用其内置的execCommand
方法执行许多格式化任务。对于背景色示例,应如下所示:
function changeIt() {
document.selection.createRange().execCommand("BackColor", false, "yellow");
}
注意:此示例仅适用于IE。如果您正在使用示例中的
文本范围
,则可以使用其内置的execCommand
方法执行许多格式化任务。对于背景色示例,应如下所示:
function changeIt() {
document.selection.createRange().execCommand("BackColor", false, "yellow");
}
注意:此示例仅适用于IE。您的代码在我的机器(IE8)上没有任何作用。请重试;我只是重新编辑了代码,并自己在IE8上再次测试了它。确保先突出显示一些文本,然后单击按钮。您的代码在我的计算机(IE8)上没有任何作用。请重试;我只是重新编辑了代码,并自己在IE8上再次测试了它。请确保先突出显示一些文本,然后单击按钮。这对于本例非常有效,这正是我要查找的内容,但是,如果我想将类和id添加到中,该怎么办?不管怎样,我已经找到了答案。这是一个很好的催化剂,可以让我自己解决问题。再次感谢,你好,詹姆斯。你提到这是你制定自己解决方案的催化剂。你能为我们其他人发布你的解决方案吗?这对于这个例子来说非常有效,这正是我想要的,但是,如果我想添加一个类和id来代替呢?不管怎样,我已经解决了。这是一个很好的催化剂,可以让我自己解决问题。再次感谢,你好,詹姆斯。你提到这是你制定自己解决方案的催化剂。你能为我们其他人发布你的解决方案吗?