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 相关文章推荐
javascript qq右下角滑出窗口 sheyMsg
Mar 21 Javascript
jQuery中复合属性选择器用法实例
Dec 31 Javascript
介绍JavaScript中Math.abs()方法的使用
Jun 14 Javascript
jquery分割字符串的方法
Jun 24 Javascript
JavaScript中函数(Function)的apply与call理解
Jul 08 Javascript
JavaScript笔记之数据属性和存储器属性
Mar 31 Javascript
JS组件Bootstrap实现弹出框效果代码
Apr 26 Javascript
jquery+css3问卷答题卡翻页动画效果示例
Oct 26 Javascript
js实现表单提交后不重新刷新当前页面
Nov 30 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
Dec 06 Javascript
JavaScript实现图片的放大缩小及拖拽功能示例
May 14 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
Jun 24 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高自定义性安全验证码代码
2011/11/27 PHP
php常用Output和ptions/Info函数集介绍
2013/06/19 PHP
php事件驱动化设计详解
2016/11/10 PHP
PHP设计模式之单例模式定义与用法分析
2019/03/26 PHP
理解JavaScript中的对象 推荐
2011/01/09 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
2018/09/10 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
10款最好的Web开发的 Python 框架
2015/03/18 Python
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
python3实现多线程聊天室
2018/12/12 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
双立人加拿大官网:Zwilling加拿大
2020/08/10 全球购物
自动化专业本科毕业生求职信
2013/10/20 职场文书
高校毕业生登记表自我鉴定
2013/11/03 职场文书
寒假思想汇报
2014/01/10 职场文书
《珍珠泉》教学反思
2014/02/20 职场文书
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
《特殊的葬礼》教学反思
2014/04/27 职场文书
2014年党课学习心得体会
2014/07/08 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
2014年工程工作总结
2014/11/25 职场文书
先进个人评语大全
2015/01/04 职场文书
2014年度个人总结范文
2015/03/09 职场文书
2015年统战工作总结
2015/05/19 职场文书
医院感染管理制度
2015/08/05 职场文书
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
2021/03/29 PHP