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 相关文章推荐
Jquery下:nth-child(an+b)的使用注意
May 28 Javascript
javascript基础之查找元素的详细介绍(访问节点)
Jul 05 Javascript
15款jQuery分布引导插件分享
Feb 04 Javascript
jQuery实现带水平滑杆的焦点图动画插件
Mar 08 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
Jun 13 Javascript
Angularjs为ng-click事件传递参数
Jun 15 Javascript
详解vue.js下引入百度地图jsApi的两种方法
Jul 27 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
Sep 27 Javascript
JavaScript判断数组类型的方法
Oct 23 Javascript
jQuery实现全选、反选和不选功能的方法详解
Dec 04 jQuery
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
May 27 Javascript
详解JavaScript自定义函数
Jul 29 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使用递归函数实现数字累加的方法
2015/03/16 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
JS 判断undefined的实现代码
2009/11/26 Javascript
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
jQuery中detach()方法用法实例
2014/12/25 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
Boostrap模态窗口的学习小结
2016/03/28 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
ES6学习教程之对象的扩展详解
2017/05/02 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
Python操作MongoDB详解及实例
2017/05/18 Python
Python模拟脉冲星伪信号频率实例代码
2018/01/03 Python
Django 路由系统URLconf的使用
2018/10/11 Python
利用Python校准本地时间的方法教程
2019/10/31 Python
Python 定义只读属性的实现方式
2020/03/05 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
用python计算文件的MD5值
2020/12/23 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
地道战观后感500字
2015/06/04 职场文书
MySQL触发器的使用
2021/05/24 MySQL
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
Python+Tkinter制作专属图形化界面
2022/04/01 Python