javascript获取选中的文本/html
首先来谈一下Selection对象和Range对象。
Selection是window.getSelection()方法返回的一个对象,用于表示用户选中的文本区域。Selection对象表现为一组Range对象。而Range对象表示文档的连续范围区域,例如用户在浏览器窗口中用鼠标拖动选中的区域。通常情况下,Selection对象只有一个Range对象,如下:
var selectionObj = window.getSelection();
var rangeObj = selectionObj.getRangeAt(0);
selectionObj为Selection对象,rangeObj为Range对象。
来个例子:
var selectionObj = window.getSelection();
var selectedText = selectionObj.toString();
selectedText即为用户选中区域的文本。
如果想获取选中部分的html代码,就需要用到Range对象的cloneContents方法,cloneContents方法把Range对象的内容复制到一个DocumentFragment对象。
var selectionObj = window.getSelection();
var rangeObj = selectionObj.getRangeAt(0);
var docFragment = rangeObj.cloneContents();
然后将docFragment渲染出来,获取其innerHTML即可。
var testDiv = document.createElement("div");
testDiv.appendChild(docFragment);
var selectHtml = testDiv.innerHTML;
selectedHtml即为用户选中区域的html代码
当然一如既往的,上述的吧啦吧啦对IE是不起作用的。IE自己玩自己的。。。
IE中,通过document.selection创建Selection对象,通过createRange方法创建Range对象,如下:
var selectionObj = document.selection;
var rangeObj = selectionObj.createRange();
range对象的text属性即为用户选中区域的文本,htmlText属性即为用户选中区域的html代码。
var selectedText = rangeObj.text;
var selectedHtml = rangeObj.htmlText;
OK,上面说了这么一大推,来个具体的例子吧。
html代码如下:

javascript代码为:
var testDiv = document.getElementById("testDiv");
testDiv.onmouseup = function(){
var selectionObj = null, rangeObj = null, selectedText = "", selectedHtml = "";
if(window.getSelection){
selectionObj = window.getSelection();
selectedText = selectionObj.toString();
rangeObj = selectionObj.getRangeAt(0);
var docFragment = rangeObj.cloneContents();
var tempDiv = document.createElement("div");
tempDiv.appendChild(docFragment);
selectedHtml = tempDiv.innerHTML;
}else if(document.selection){
selectionObj = document.selection;
rangeObj = selectionObj.createRange();
selectedText = rangeObj.text;
selectedHtml = rangeObj.htmlText;
}
alert(selectedText);
alert(selectedHtml);
};
webkit浏览器的运行结果如下:

IE浏览器的运行结果如下:

javascript获取选中的文本/html的更多相关文章
- jquery获取选中的文本和值
jquery获取选中的文本和值 1.说明 (1)获取select下拉框选中的索引 $("#selection").get(0).selectedIndex; (2)获取 ...
- Jquery获取选中的文本值
$(document).ready(function() { $(".contenttext").mouseup(function(e) { var txt; var parent ...
- JavaScript获取当前值
JavaScript获取当前值 1.说明 获取select下拉框中的选中的值以及文本值 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD ...
- (获取选中的光标起始位置)EditText常用属性【三】:EditText选取操作
转自:http://blog.csdn.net/wirelessqa/article/details/8567702 话不多说,直接上码: activity_main.xml <ScrollVi ...
- Javascript获取select的选中值和选中文本(转载)
var obj = document.getElementById(”select_id”); //selectid var index = obj.selectedIndex; // 选中索引 va ...
- Javascript获取select下拉框选中的的值
现在有一id=test的下拉框,怎么拿到选中的那个值呢? 分别使用javascript原生的方法和jquery方法 <select id="test" name=" ...
- jquery操作select下拉框的各种方法,获取选中项的值或文本,根据指定的值或文本选中select的option项等
简介jquery里对select进行各种操作的方法,如联动.取值.根据值或文本来选中指定的select下拉框指定的option选项,读取select选中项的值和文本等. 这一章,站长总结一下jquer ...
- 用JavaScript获取页面上被选中的文字的技巧
这里介绍的一个小技巧是如何用JavaScript获取页面上被选中的文字的方法.最关键的JavaScript API是: event.selection = window.getSelection(); ...
- wpf ComboBox 获取选中项的文本内容
一:根据数据源类型获取选中项 类: public class Region { public int REGION_ID { get; set; } public string REGION_CODE ...
随机推荐
- jquery 之效果
// jquery 之效果 .css()既可以获取值,如 .css('fontSize'), 又可以设置内置属性,既可用驼峰式,也可以用连字符版,如 .css('background-color', ...
- js 遍历json对象
//方法一: var data=[{name:"a",age:12},{name:"b",age:11},{name:"c",age:13} ...
- css(html)背景图优化合并
图片本身的优化: 图像质量要求和图像文件大小决定你用什么格式的图片,用较小的图片文件呈现较好的图像质量. 当图片色彩过于丰富且无透明要求时,建议采用jpg格式并保存为较高质量. 当图片色彩过于丰富又有 ...
- python【第十九篇】Django进阶
1.路由系统优化 1.1 路由分发 前面我们已经知道,在工程名下的urls.py中写我们的路由映射关系,那么问题来了,假设我们有10个app,如果把所有的url映射都写在urls.py文件中,那么每一 ...
- 什么是xsi:type ???
http://www.w3.org/2001/XMLSchema-instance http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.ecli ...
- Android 自定义RadioButton实现
由于使用小米系统MIUI运行是RadioButton样式跟google Android API自定义的不一样,则我们可以定义任何想要的东东.没有做不到,只有想不到 Android 自定义RadioBu ...
- git的id_rsa.pub的生成(也就是github上的SSH Keys)
只需要一条语句就可以实现生成id_rsa.pub和id_rsa的目的:ssh-keygen -t rsa -C your_email 注意:这个邮箱是你github上的邮箱.只有在gthub上添加了这 ...
- Code First 指定外键名称
指定类外键有注释(DataAnnotation)和FluentAPI两种方式, 目前掌握的知识我们先把DataAnnotation可用的四种方式总结如下 第一种方法: //1-指定导航属性,会自动生成 ...
- [转贴]C++调用openssl 的AES加密例子
#include <stdio.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h ...
- iOS -view横向变成竖向
-------