环境描述:windows7,IE11
问题描述:
在ie10以前的版本中,网站javascript脚本程序都运行正常,但升级到ie11 中,发现脚本出错,最后调试发现是程序脚本与ie兼容性问题,在ie11版本中document.selection.createRange()方法没有了,而且也没有pasteHTML()方法,替换为其他办法了。
说明:下面的message是html_text编辑框页面中ifame的id号
var range =message.document.selection.createRange(); //ie11不支持
range.pasteHTML(string);//ie11不支持
解决办法:
使用下面的函数:
<script type="text/javascript" language="javascript">
<!--
function pasteHTML() {
//html_textbox 是iframe的id,用于动态编辑html文本
var doc = document.getElementById("html_textbox").contentWindow.document;
// IE <= 10
if (document.selection){
var range = doc.selection.createRange();
range.pasteHTML("<b>Some bold text</b>");
// IE 11 && Firefox, Opera .....
}else if(document.getSelection){
var range = doc.getSelection().getRangeAt(0);
var nnode = doc.createElement("b");
range.surroundContents(nnode);
nnode.innerHTML = "<b>Some bold text in ie11</b> <br><a href=#>测试超链</a>";
};
}
-->
</script>
下载文件:html_edit_box_for paste_html_script