JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)


Posted in Javascript onJune 24, 2016

本文实例讲述了JS实现iframe编辑器光标位置插入内容的方法。分享给大家供大家参考,具体如下:

<html>
<iframe id="x" name="x"></iframe>
<input type="button" onclick="t()" value="test">
<input type="button" onclick="frames['x'].location.href='about:blank';" value="clear">
<script>
//setTimeout('window.frames["x"].document.designMode="On"',200);
function t(){
window.frames["x"].document.designMode="On";
var html = '<b style="color:red">'+$('xx').value+'</b>';//插入的内容(html),可以是图片。
if(getBrowser()=='ie'){
var Editor = window.frames["x"];//IE获取iframe方法,否则图片位置跑到页面顶上去了。
Editor.focus();
o=Editor.document.selection.createRange();
o.pasteHTML(html);
}else if(getBrowser()=='chrome'){
var Editor = $('x');//firefox要通过这种方式获取节点才行
Editor.focus();
//alert(Editor.contentWindow.getSelection().getRangeAt(0));
var rng = Editor.contentWindow.getSelection().getRangeAt(0);
var frg = rng.createContextualFragment(html);
rng.insertNode(frg);
}
}
//获取浏览器版本
function getBrowser(){
var agentValue = window.navigator.userAgent.toLowerCase();
if(agentValue.indexOf('msie')>0){
return "ie";
}else if(agentValue.indexOf('firefox')>0){
return "ff";
}else if(agentValue.indexOf('chrome')>0){
return "chrome";
}
}
function $(id){
return document.getElementById(id);
}
//根据元素className属性获取元素,如果有多个元素样式类名相同,可以用index指定返回第几个元素,第一个为1
function getNodeByClassName(vclassname,index){
//var allnodes = document.all;
var allnodes = document.getElementsByTagName("*");
var x = 0;
for(var i=0;i<allnodes.length;i++){
if(allnodes[i].className==vclassname){
if(index!="undefined"){
x++;
if(x<index){
continue;
}
}
return allnodes[i];
}
}
}
</script>
输入: <input id="xx">

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
List the Codec Files on a Computer
Jun 11 Javascript
基于jQuery的获取标签名的代码
Jul 16 Javascript
Javascript Ajax异步读取RSS文档具体实现
Dec 12 Javascript
jquery easyui中treegrid用法的简单实例
Feb 18 Javascript
JS中Location使用详解
May 12 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
Oct 26 Javascript
Vue.JS入门教程之自定义指令
Dec 08 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
Apr 13 Javascript
微信小程序实现城市列表选择
Jun 05 Javascript
JS实现在线ps功能详解
Jul 31 Javascript
el-select 下拉框多选实现全选的实现
Aug 02 Javascript
js实现图片跟随鼠标移动效果
Oct 16 Javascript
jQuery如何获取动态添加的元素
Jun 24 #Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
Jun 24 #Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
Jun 24 #Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
Jun 24 #Javascript
老生常谈 关于JavaScript的类的继承
Jun 24 #Javascript
js动态获取子复选项并设计全选及提交的实现方法
Jun 24 #Javascript
EasyUI在表单提交之前进行验证的实例代码
Jun 24 #Javascript
You might like
php的chr和ord函数实现字符加减乘除运算实现代码
2011/12/05 PHP
php不用正则验证真假身份证
2013/11/06 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
laravel 时间格式转时间戳的例子
2019/10/11 PHP
jQuery插件开发基础简单介绍
2013/01/07 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
2016/04/01 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
2017/10/31 Javascript
js计算两个日期间的天数月的实例代码
2018/09/20 Javascript
Nuxt.js SSR与权限验证的实现
2018/11/21 Javascript
vue无限轮播插件代码实例
2019/05/10 Javascript
ES6 Iterator接口和for...of循环用法分析
2019/07/31 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
python网络编程之文件下载实例分析
2015/05/20 Python
Python写的一个简单监控系统
2015/06/19 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
python提取xml里面的链接源码详解
2019/10/15 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
Python join()函数原理及使用方法
2020/11/14 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
实习护士自我鉴定
2013/10/13 职场文书
酒店公关部经理岗位职责
2013/11/24 职场文书
外贸业务员求职信
2014/06/16 职场文书
煤矿开采专业求职信
2014/07/08 职场文书
软环境建设心得体会
2014/09/09 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
销售工作决心书
2015/02/04 职场文书
春节晚会开场白
2015/05/29 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
go xorm框架的使用
2021/05/22 Golang