Firefox Addon(SDK) - 有没有办法用最少的脚本注入来获得文本悬停响应

时间:2014-03-01 14:55:29

标签: javascript sdk firefox-addon

我正在使用Firefox Addon SDK编写西班牙语词典插件。我想要做的是当鼠标悬停在文本上时,会弹出一个带有翻译的字典。不需要突出显示文本或右键单击(尽管有些词典使用此功能)。有几个程序使用旧的插件XUL格式(Rikaichan等)执行此操作,但我想知道是否有办法使用新SDK。

我目前的解决方法是在文本节点中的每个单词周围注入javascript标签以及onmouseover =“lookThisUp()”。这样可行,但是当我想检查成对时改变含义的单词(“起来”而不是“获取”)时会遇到并发症,因此不使用javascript标签切割所有文本的方法将是优先的。

1 个答案:

答案 0 :(得分:1)

这是如何使用最新的导航器执行此操作的示例:浏览器窗口:

var {Cu} = require('chrome');
Cu.import('resource://gre/modules/Services.jsm');
var aDOMWindow = Services.wm.getMostRecentWindow('navigator:browser');
aDOMWindow.gBrowser.addEventListener('mouseover', isTextNode, true);
function isTextNode(event) {
  var node = event.explicitOriginalTarget;
  if (node.nodeName == '#text') {
    Services.appShell.hiddenDOMWindow.console.log('moused over a text node = ',node,'the event:',event);
  }
}

当您在最近的浏览器中将鼠标悬停在文本节点上时,它会将其记录到浏览器控制台。