YanTianFeng的知识库

Want Coding

Want Reading

文章 89

访问 18444

评论 2

头像

YanTianFeng

发私信

文章 89
访问 18444
评论 2
JAVASCRIPT
返回顶部

Knowledge  获取选中文本 兼容性

标签   selection   兼容性  

  ( 195 )       ( 0 )


前言

在 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()