Range,这是个很容易被人忽略的东西,在开发富文本编辑器时会经常用到。使用iframe设计模式或div的 contenteditable=“true” 。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <div id="div" contenteditable="true" style="width:300px;height:100px;border:1px solid #000"><br /></div> <input type="button" value="插入" onclick="test('测试一下')" onfocus="this.blur()" /> <script type="text/javascript"> function test(str){ if(!document.all){ alert("仅在IE中可以查看"); return; } document.getElementById('div').focus(); var selection= window.getSelection ? window.getSelection() : document.selection; var range= selection.createRange ? selection.createRange() : selection.getRangeAt(0); range.pasteHTML(str); range.collapse(false); range.select(); } </script> </body> </html> 提示:您可以先修改部分代码再运行
<html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <div id="div" contenteditable="true" style="width:300px;height:100px;border:1px solid #000"><br /></div> <input type="button" value="插入" onclick="test('测试一下')" onfocus="this.blur()" /> <script type="text/javascript"> function test(str){ var selection= window.getSelection ? window.getSelection() : document.selection; var range= selection.createRange ? selection.createRange() : selection.getRangeAt(0); if (!window.getSelection){alert("请在支持w3c标准的浏览器查看")} else{ document.getElementById('div').focus(); range.collapse(false); var hasR = range.createContextualFragment(str); var hasR_lastChild = hasR.lastChild; while (hasR_lastChild && hasR_lastChild.nodeName.toLowerCase() == "br" && hasR_lastChild.previousSibling && hasR_lastChild.previousSibling.nodeName.toLowerCase() == "br") { var e = hasR_lastChild; hasR_lastChild = hasR_lastChild.previousSibling; hasR.removeChild(e) } range.insertNode(hasR); if (hasR_lastChild) { range.setEndAfter(hasR_lastChild); range.setStartAfter(hasR_lastChild) } selection.removeAllRanges(); selection.addRange(range) } } </script> </body> </html>
提示:您可以先修改部分代码再运行 |
- 浏览: 547591 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (618)
- java (109)
- Java web (43)
- javascript (52)
- js (15)
- 闭包 (2)
- maven (8)
- 杂 (28)
- python (47)
- linux (51)
- git (18)
- (1)
- mysql (31)
- 管理 (1)
- redis (6)
- 操作系统 (12)
- 网络 (13)
- mongo (1)
- nginx (17)
- web (8)
- ffmpeg (1)
- python安装包 (0)
- php (49)
- imagemagic (1)
- eclipse (21)
- django (4)
- 学习 (1)
- 书籍 (1)
- uml (3)
- emacs (19)
- svn (2)
- netty (9)
- joomla (1)
- css (1)
- 推送 (2)
- android (6)
- memcached (2)
- docker、 (0)
- docker (7)
- go (1)
- resin (1)
- groovy (1)
- spring (1)
最新评论
-
chokee:
...
Spring3 MVC 深入研究 -
googleyufei:
很有用, 我现在打算学学Python. 这些资料的很及时.
python的几个实用网站(转的) -
hujingwei1001:
太好了找的就是它
easy explore -
xiangtui:
例子举得不错。。。学习了
java callback -
幻影桃花源:
太好了,謝謝
Spring3 MVC 深入研究
发表评论
-
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2014-12-09 10:33 757原文地址:http://www.techo ... -
241个jquery插件—jquery插件大全
2014-12-09 10:26 775原文地址:http://blog.csdn.net/adsda ... -
前端ui的js框架
2014-09-04 16:45 565原文地址:http://www.quickui.net/v3/ ... -
2014 年最火的21个JavaScript框架
2014-09-03 17:25 454原文地址:http://www.iteye.com/news/ ... -
Bootstrap 栅格系统
2014-08-08 15:53 495原文地址:http://www.cnblogs.com/lin ... -
自定义Bootstrap
2014-08-08 10:14 665原文地址:http://www.w3cplus.com/css ... -
使用python/casperjs编写终极爬虫-客户端App的抓取
2014-08-06 18:09 9301.缘起 随着移动互 ... -
使用Selenium和PhantomJS解析带JS的网页
2014-08-06 17:57 1021有的网页,不能直接通过wget/curl等命令、或者直接使用P ... -
数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置
2014-08-06 17:56 603原文地址:http://blog.chin ... -
ubuntu12.04 下安装nodejs【整理】
2014-06-12 14:38 692ubuntu12.04 下安装nodejs【整理】 作者:杭州 ... -
Ubuntu安装nodeJS
2014-06-12 14:38 482Ubuntu安装nodeJS 安装环境 ubuntu12. ... -
纯js页面跳转整理
2014-05-20 18:06 498纯js页面跳转整理 js页面跳转 js方式的页面跳转 1. ... -
细说Cookie
2013-09-29 15:14 627细说Cookie 阅读目录 开始 ... -
JavaScript Source Map 详解
2013-08-30 09:49 777JavaScript Source Map 详解 ... -
主题:50个令人惊奇的jQuery插件
2013-05-29 18:17 964jQuery拥有强大的有创造性的程序员群体。 然而,它很难通 ... -
jquery触发事件
2013-05-23 17:25 582Snandy Stop, thinking is th ... -
jquery事件命名空间
2013-05-23 17:13 484JQUERY事件命名空间 2012 ... -
jQuery的事件命名空间-Namespaced Events
2013-05-23 17:12 608jQuery的事件命名空间-Namespaced Event ... -
JQuery自定义事件的应用 JQuery最佳实践
2013-05-23 16:54 760本文主要介绍JQuery框架里面支持的自定义事件模型,通过实 ... -
jquery插件开发
2013-05-13 15:01 683此文引自:http://www.cnblogs.com/to ...
相关推荐
WEBQQ登陆器.rar
我收集的各种类似于QQ和WebQQ的源码 有: VC 仿QQ即时通信程序.rar VC++ 实现类似QQ的多功能聊天程序.rar WebQQ181.rar 仿QQ完全开源的交互聊天软件.rar myicq.zip
这是本人在WebQQ2.0协议的基础上,通过抓包分析WebQQ3.0协议做出的WebQQ客户端,开发工具Visual studio 2008,开发语言C#,此WebQQ客户端包括验证码获取,QQ登录,获取好友列表,获取在线好友列表,接收消息,发送...
仿WebQQ的桌面系统,纯JQuery制作,代码非常易理解 可马上上手进行二次开发
迷你WEBQQ
简单项目开发实例asp.net3.5与ajax webQQ,供有兴趣者参考。
针对flex新手熟悉flash builder控件使用
熬了几个通宵终于做好了,里面实现的webQQ的大部分功能,而且全开源,适用中高级.net开发人员研究,主要是对 XML 的操作和ajax,还用了少量的JQ可以自由增加组,加好友等 数据库在DB_asp.netfaq.cn文件夹中(sql2000)...
WebQQ协议.rar
webQQ源码.e
javascript文件,一个用js写的简易的桌面系统,有点像webQQ的感觉,还是不错的东西
webqq 源码 webqq仿制 webqq 源码 webqq仿制
jquery-----WebQQ桌面布局
本开发包是一个基于webQQ协议的.net开发工具包,内涵实例代码,暂时是不完整版,没有开发文档,有部分动能不完善,但是可以登录并且取回信息及好友列表,获取完整版请加QQ群93772282,详情咨询群主QQ137336521
webqq MIni版登陆程序 webqq MIni版登陆程序webqq MIni版登陆程序webqq MIni版登陆程序
Mini webQQ 1.0为我兴趣之作,只是一款辅助登陆webqq的小工具,感兴趣的朋友可以下载使用,它包含以下优点: 1、不含任何盗号木马。从本博客下载的软件,为第一作者上传的绿色软件,且你的QQ号不会被TX官方封杀。 ...
WEBQQ 3.0 协议WEBQQ 3.0 协议WEBQQ 3.0 协议WEBQQ 3.0 协议WEBQQ 3.0 协议WEBQQ 3.0 协议WEBQQ 3.0 协议WEBQQ 3.0 协议WEBQQ 3.0 协议WEBQQ 3.0 协议WEBQQ 3.0 协议WEBQQ 3.0 协议WEBQQ 3.0 协议WEBQQ 3.0 协议...
WEBQQ完整协议,包含了所有的协议操作文档
实现和QQ一样的效果,采用Asp.net设计,全部C#源码
webqq2009 开源 源码 webqq网页形式全开放源码