<div  onmouseup="alert(window.document.selection.createRange().text)">
fdsafdsafdsafdsafdsafdsafdsafb
</div>

 就是在浏览器选中一段文字,我们要如何在获取这段选中的文字呢?
IE浏览的页面中很简单:
window.document.selection.createRange().text;
FireFox浏览的页面中也很简单
function getSel()
{
    var txt = ”;
    if (window.getSelection)
    {
        txt = window.getSelection();
    }
    else if (document.getSelection)
    {
        txt = document.getSelection();
    }
    else if (document.selection)
    {
        txt = document.selection.createRange().text;
    }
    return txt;
}
后来我查了查文档发现,在FF浏览的页面中只需要:txt = window.getSelection();中就可以了.
那么上面的代码在FireFox插件的.js文件中是否可行呢?答案是不行(我验证过的噢!)。
为什么呢?因为FireFox是多TAB的方式了(十分详细的说明我也没找到,就简单的看到这句)
那怎么解决呢?
使用以下函数就可以了:
function getSel()
{
    var txt = ”;
    var focusedWindow = document.commandDispatcher.focusedWindow;
    txt = focusedWindow.getSelection().toString();
    return txt;
}
以上方法在我的FF1.5中测试通过,根据说明在旧版本上一样可用(未经过验证)
这个解决方法来自于
http://weblogs.mozillazine.org/asa/archives/007945.html
的讨论,有兴趣的朋友可以去看一下。

发表评论

电子邮件地址不会被公开。 必填项已用*标注