0

再会。我想在我的 FireFox 扩展中添加 jQuery 我在 .xul 中添加文件并使用以下代码:

main.xul:

<overlay id="sample"
   xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
   xmlns:html="http://www.w3.org/1999/xhtml">
   <script type="application/x-javascript" src="chrome://mozillatest/content/jquery.js" />
   <script type="application/x-javascript" src="chrome://mozillatest/content/main.js" />
</overlay>

main.js 文件:

document.addEventListener("DOMContentLoaded", function(){
 $whatever = jQuery.noConflict();

 if (window.$whatever) {
  alert('1 check - OK 1!');

 $whatever('form').on('submit', function(e) {
  alert('submited');
 });
});

我看到警报“1 检查 - 确定 1!” 但是当我导航到某些站点并按提交时,我看不到警报“已提交”。我在 Chrome 中编写扩展程序,它可以正常工作!我需要做什么?

4

1 回答 1

1

您正在将 jquery 加载到 browser.xul 中,这不是您真正想要的。您希望它在页面的上下文中。

我建议您查看附加 SDK而不是编写普通的 XUL 扩展,因为这不仅对您的一般用例更容易,而且 SDK 也更像一个 chrome 扩展。看看page-modSDK 模块

如果您仍然想使用普通的 XUL,您必须完成繁重的工作,SDK 会为您自己做,即intercepting page loads,然后使用 DOM 方法(或 jQuery,但不是常规的“样式”)与之交互网站。但在此之前,您需要全面了解browser.xulxul 窗口、覆盖层<tabbrowser>以及它的关系browser.xul等等。

于 2013-09-30T15:13:40.117 回答