嗨我的第一个插件有问题.. 我尝试使用此功能选择网站页面上的单词
function getSelected() {
var userSelection;
if (window.getSelection) {
userSelection = window.getSelection();
} else if (document.selection) {
userSelection = document.selection.createRange();
}
return userSelection;
}
function getText() {
var select = getSelected()+ "";
alert(select);
}
在我的xul中我用这种方式执行上面的函数:
<menuitem id="inlinetransContextMenuPage"
label="Terjemahkan dengan inlinetrans"
onclick="overlay.getText()" />
</popup>
但为什么当我在页面上选择单词时(弹出窗口为空白),单词无法出现..
答案 0 :(得分:0)
可能发生的事情是,当click
事件在XUL <menuitem>
上触发时,点击它的动作已经破坏了页面中的选择。请尝试使用mousedown
事件(即将onclick
更改为onmousedown
)。
此外,getSelected()
函数不必要地复杂。由于您的代码只需要在Firefox中运行,因此您可以使用:
function getSelected() {
return window.getSelection().toString();
}
答案 1 :(得分:0)
window.getSelection()
从chrome窗口返回选择,该窗口几乎总是空的。如您所发现,您需要使用document.commandDispatcher.focusedWindow
来找出哪个窗口具有活动选择。 (如果你很懒,你可能已经尝试content.getSelection()
,但只有在页面没有框架时才有效。)