才子佳人博客

我的故事我讲述

在ie11版本中document.selection.createRange()方法错误的解决办法
 
来源:xjh  编辑:xjh  2014-12-25

环境描述: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


分类:网站设计| 查看评论
相关文章
文章点击排行
本年度文章点击排行
发表评论:
  • 昵称: *
  • 邮箱: *
  • 网址:
  • 评论:(最多100字)
  • 验证码: