前言
在 js 中有时需要选中,并获取选中文本,进而对选中文本进行操作。特别是在文本编辑器中进行(加粗、斜体、创建超链接等)操作时,这个是很常用的。
获取选中文本的代码
var _getSelectedText = function() { if (window.getSelection) { return window.getSelection().toString(); } else if (document.getSelection) { return document.getSelection(); } else if (document.selection) { return document.selection.createRange().text; } else { return ""; } }
或者这样写:
var t = window.getSelection ? window.getSelection().toString() : ( document.getSelection ?document.getSelection() : ( document.selection ? document.selection.createRange().text : "" ));
这种写法更精简,但是对于初次接触 js 的童鞋,不太容易看懂。 however , choose what you want 。
需要说明的是,之所以这样写,就是因为不同浏览器对此功能的实现方式不一样导致的,也就是兼容性一词的由来。简单介绍一下:
IE 中代码
document.selection.createRange().text
FireFox & Safari 中代码
window.getSelection().toString()