JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
本文实例讲述了JS实现iframe编辑器光标位置插入内容的方法。分享给大家供大家参考,具体如下:
<html>
<iframeid="x"name="x"></iframe>
<inputtype="button"onclick="t()"value="test">
<inputtype="button"onclick="frames['x'].location.href='about:blank';"value="clear">
<script>
//setTimeout('window.frames["x"].document.designMode="On"',200);
functiont(){
window.frames["x"].document.designMode="On";
varhtml='<bstyle="color:red">'+$('xx').value+'</b>';//插入的内容(html),可以是图片。
if(getBrowser()=='ie'){
varEditor=window.frames["x"];//IE获取iframe方法,否则图片位置跑到页面顶上去了。
Editor.focus();
o=Editor.document.selection.createRange();
o.pasteHTML(html);
}elseif(getBrowser()=='chrome'){
varEditor=$('x');//firefox要通过这种方式获取节点才行
Editor.focus();
//alert(Editor.contentWindow.getSelection().getRangeAt(0));
varrng=Editor.contentWindow.getSelection().getRangeAt(0);
varfrg=rng.createContextualFragment(html);
rng.insertNode(frg);
}
}
//获取浏览器版本
functiongetBrowser(){
varagentValue=window.navigator.userAgent.toLowerCase();
if(agentValue.indexOf('msie')>0){
return"ie";
}elseif(agentValue.indexOf('firefox')>0){
return"ff";
}elseif(agentValue.indexOf('chrome')>0){
return"chrome";
}
}
function$(id){
returndocument.getElementById(id);
}
//根据元素className属性获取元素,如果有多个元素样式类名相同,可以用index指定返回第几个元素,第一个为1
functiongetNodeByClassName(vclassname,index){
//varallnodes=document.all;
varallnodes=document.getElementsByTagName("*");
varx=0;
for(vari=0;i<allnodes.length;i++){
if(allnodes[i].className==vclassname){
if(index!="undefined"){
x++;
if(x<index){
continue;
}
}
returnallnodes[i];
}
}
}
</script>
输入:<inputid="xx">
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短