redirect_to :future #思维驱动 » Blog Archive » FireFox插件编写问题一:如何在插件代码中获取选中文字

FireFox插件编写问题一:如何在插件代码中获取选中文字

本来说写FireFox的插件编写教程,一直没动手,这几天忙于工作,过几天一定会写的。今天遇到一个问题后来找到解决办法,先说说:
就是在浏览器选中一段文字,我们要如何在获取这段选中的文字呢?
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
的讨论,有兴趣的朋友可以去看一下。

看完啦?再看看我们最近的10条记录对您是否有用呢?

要不,再找找其它内容:




或者给我们留下些意见、建议,这将给我们莫大的鼓励,促使我们做得更好。