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 类型的包装对象(Typed Wrappers)
Oct 27 Javascript
jquery插件validate验证的小例子
May 08 Javascript
JS实现的自定义右键菜单实例二则
Sep 01 Javascript
javascript日期操作详解(脚本之家整理)
Sep 05 Javascript
jquery实现具有收缩功能的垂直导航菜单
Feb 16 Javascript
JavaScript中日期函数的相关操作知识
Aug 03 Javascript
IntersectionObserver API 详解篇
Dec 11 Javascript
iscroll动态加载数据完美解决方法
Jul 18 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
Nov 01 Javascript
jquery获取img的src值实例介绍
Jan 16 jQuery
命令行批量截图Node脚本示例代码
Jan 25 Javascript
浅谈JavaScript作用域
Dec 06 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 动态随机生成验证码类代码
2010/04/09 PHP
php定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
PHP简单选择排序算法实例
2015/01/26 PHP
php文件缓存方法总结
2016/03/16 PHP
微信第三方登录(原生)demo【必看篇】
2017/05/26 PHP
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2009/06/22 Javascript
jQuery技巧总结
2011/01/01 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
Javascript中的arguments与重载介绍
2015/03/15 Javascript
酷炫jQuery全屏3D焦点图动画效果
2016/03/22 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
AngularJS基础 ng-keypress 指令简单示例
2016/08/02 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
如何从零开始手写Koa2框架
2019/03/22 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
ES5和ES6中类的区别总结
2020/12/21 Javascript
python使用urllib模块和pyquery实现阿里巴巴排名查询
2014/01/16 Python
浅谈python字典多键值及重复键值的使用
2016/11/04 Python
python登录并爬取淘宝信息代码示例
2017/12/09 Python
Python处理文本换行符实例代码
2018/02/03 Python
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
Python进程间通信Queue消息队列用法分析
2019/05/22 Python
anaconda中更改python版本的方法步骤
2019/07/14 Python
python3字符串操作总结
2019/07/24 Python
Python如何爬取b站热门视频并导入Excel
2020/08/10 Python
python 实现汉诺塔游戏
2020/11/28 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
意大利拉斐尔时尚购物网:Raffaello Network(支持中文)
2018/11/09 全球购物
Marlies Dekkers内衣美国官方网上商店:高端内衣品牌
2018/11/12 全球购物
外贸业务员岗位职责
2013/11/24 职场文书
玲玲的画教学反思
2014/02/04 职场文书
学校安全管理责任书
2014/07/23 职场文书
安全责任协议书范本
2016/03/23 职场文书