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 相关文章推荐
通过JS获取用户本地图片路径并显示的代码
Feb 16 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
Feb 27 Javascript
jquery绑定事件不生效的解决方法
Feb 11 Javascript
JavaScript 异常处理 详解
Feb 06 Javascript
jquery实现平滑的二级下拉菜单效果
Aug 26 Javascript
不定义JQuery插件 不要说会JQuery
Mar 07 Javascript
JS采用绝对定位实现回到顶部效果完整实例
Jun 20 Javascript
微信小程序 火车票查询实例讲解
Oct 17 Javascript
基于bootstrop常用类总结(推荐)
Sep 11 Javascript
微信小程序基于Taro的分享图片功能实践详解
Jul 12 Javascript
js实现查询商品案例
Jul 22 Javascript
vue+swiper实现左右滑动的测试题功能
Oct 30 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中多维数组的foreach遍历示例
2014/06/13 PHP
php防止sql注入的方法详解
2017/02/20 PHP
详解php用static方法的原因
2018/09/12 PHP
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
2013/11/28 Javascript
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
JS设置手机验证码60s等待实现代码
2017/06/14 Javascript
webpack踩坑之路图片的路径与打包
2017/09/05 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
2017/11/28 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
实例分析js事件循环机制
2017/12/13 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
2018/09/26 Javascript
使用nvm和nrm优化node.js工作流的方法
2019/01/17 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
python非递归全排列实现方法
2017/04/10 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
python截取两个单词之间的内容方法
2018/12/25 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
用python计算文件的MD5值
2020/12/23 Python
PyQt5中QSpinBox计数器的实现
2021/01/18 Python
css背景图片的背景裁切、背景透明度、背景变换等效果运用
2012/12/24 HTML / CSS
css图标制作教程制作云图标
2014/01/19 HTML / CSS
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
html5的canvas方法使用指南
2014/12/15 HTML / CSS
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
Forever 21美国官网:美国标志性快时尚品牌
2017/02/20 全球购物
世界上最大的隐形眼镜商店:1-800 Contacts
2018/11/03 全球购物
说出ArrayList,Vector, LinkedList的存储性能和特性
2015/01/04 面试题
财务人员个人求职信范文
2013/12/04 职场文书
全运会口号
2014/06/20 职场文书
返乡农民工证明
2015/06/24 职场文书
2016大学生党校学习心得体会
2016/01/06 职场文书
CSS中em的正确打开方式详解
2021/04/08 HTML / CSS
MySQL快速插入一亿测试数据
2021/06/23 MySQL