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 相关文章推荐
用正则表达式 动态创建/增加css style script 兼容IE firefox
Mar 10 Javascript
JavaScript 浮点数运算 精度问题
Oct 06 Javascript
学习ExtJS TextField常用方法
Oct 07 Javascript
Jquery 数据选择插件Pickerbox使用介绍
Aug 24 Javascript
js indexOf()定义和用法
Oct 21 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
Nov 26 Javascript
关于JS变量和作用域详解
Jul 28 Javascript
javascript 删除数组元素和清空数组的简单方法
Feb 24 Javascript
Vuex之理解state的用法实例
Apr 19 Javascript
解决浏览器会自动填充密码的问题
Apr 28 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
Jul 10 Javascript
js实现盒子滚动动画效果
Aug 09 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
星际初学者游戏中永远要做的事
2020/03/04 星际争霸
php性能优化分析工具XDebug 大型网站调试工具
2011/05/22 PHP
关于使用coreseek并为其做分页的介绍
2013/06/21 PHP
使用XHGui来测试PHP性能的教程
2015/07/03 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
Jquery ajaxsubmit上传图片实现代码
2010/11/04 Javascript
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
简单的js表单验证函数
2013/10/28 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
详谈LABJS按需动态加载js文件
2015/05/07 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
js获取form表单中name属性的值
2019/02/27 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
Vue.js暴露方法给WebView的使用操作
2020/09/07 Javascript
[03:17]2016完美“圣”典风云人物:冷冷专访
2016/12/08 DOTA
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
python解决汉字编码问题:Unicode Decode Error
2017/01/19 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
基于Python的OCR实现示例
2020/04/03 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
英国第一的市场和亚马逊替代品:OnBuy
2019/03/16 全球购物
中专生职业生涯规划书范文
2013/12/29 职场文书
大学生入党思想汇报
2014/01/01 职场文书
乡镇干部学习心得体会
2016/01/23 职场文书
创业计划书之寿司
2019/07/19 职场文书
vue响应式原理与双向数据的深入解析
2021/06/04 Vue.js