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插件写法笔记整理
Sep 06 Javascript
登陆成功后自动计算秒数执行跳转
Jan 23 Javascript
三种检测iPhone/iPad设备方向的方法
Apr 23 Javascript
浅谈javascript实现八大排序
Apr 27 Javascript
javascript实现简单加载随机色方块
Dec 25 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
Jan 28 Javascript
Angular项目从新建、打包到nginx部署全过程记录
Dec 09 Javascript
JavaScript实现单例模式实例分享
Dec 22 Javascript
JS逻辑运算符短路操作实例分析
Jul 09 Javascript
浅析Vue 和微信小程序的区别、比较
Aug 03 Javascript
Angular脚手架开发的实现步骤
Apr 09 Javascript
VUE 自定义组件模板的方法详解
Aug 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
德生H-501的评价与改造
2021/03/02 无线电
PHP+Mysql+jQuery实现动态展示信息
2011/10/08 PHP
php 保留字列表
2012/10/04 PHP
linux下编译安装memcached服务
2014/08/03 PHP
php实现通过cookie换肤的方法
2015/07/13 PHP
php socket通信简单实现
2016/11/18 PHP
php中引用&amp;的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
玩转方法:call和apply
2014/05/08 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
2016/04/29 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python结合API实现即时天气信息
2016/01/19 Python
使用Python的turtle模块画图的方法
2017/11/15 Python
tornado 多进程模式解析
2018/01/15 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
对Django的restful用法详解(自带的增删改查)
2019/08/28 Python
python可视化实现KNN算法
2019/10/16 Python
vscode调试django项目的方法
2020/08/06 Python
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
给同事的道歉信
2014/01/11 职场文书
幼儿园门卫岗位职责
2014/02/14 职场文书
会议室标语
2014/06/21 职场文书
超市开店计划书
2014/09/15 职场文书
群众路线对照检查材料思想汇报怎么写
2014/09/18 职场文书
公文写作:新员工转正申请书范本3篇!
2019/08/07 职场文书
Html5生成验证码的示例代码
2021/05/10 Javascript