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学习笔记(十六) 系统对话框(alert、confirm、prompt)
Jun 20 Javascript
javascript内存管理详细解析
Nov 11 Javascript
jquery easyui combox一些实用的小方法
Dec 25 Javascript
jQuery 选择同时包含两个class的元素的实现方法
Jun 01 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
Jun 03 Javascript
分享JavaScript监听全部Ajax请求事件的方法
Aug 28 Javascript
基于vuejs+webpack的日期选择插件
May 21 Javascript
angular学习之ngRoute路由机制
Apr 12 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
May 10 Javascript
微信小程序实现运动步数排行功能(可删除)
Jul 05 Javascript
js Math数学简单使用操作示例
Mar 13 Javascript
js基于div丝滑实现贝塞尔曲线
Sep 23 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
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
php中定义网站根目录的常用方法
2010/08/08 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
jquery 1.4.2发布!主要是性能与API
2010/02/25 Javascript
js判断是否为数组的函数: isArray()
2011/10/30 Javascript
基于jquery的多功能软键盘插件
2012/07/25 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
Jquery表单验证失败后不提交的解决方法
2016/10/18 Javascript
Bootstrap3 内联单选和多选框
2016/12/29 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
简单介绍Python下自己编写web框架的一些要点
2015/04/29 Python
Python正规则表达式学习指南
2016/08/02 Python
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
python实现决策树分类算法
2017/12/21 Python
python2.7到3.x迁移指南
2018/02/01 Python
用Python读取几十万行文本数据
2018/12/24 Python
anaconda中更改python版本的方法步骤
2019/07/14 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
Python编写打字训练小程序
2019/09/26 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
Python创建数字列表的示例
2019/11/28 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
Python request post上传文件常见要点
2020/11/20 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
工作表现自我评价
2014/02/08 职场文书
创先争优宣传标语
2014/10/08 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书
2016幼儿教师自荐信范文
2016/01/28 职场文书