jQuery 和扩展 [提交不起作用]

jQuery and Extension [Submit not working]

本文关键字:不起作用 提交 扩展 jQuery      更新时间:2023-09-26

美好的一天。我想在我的 FireFox 扩展中添加 jQuery我在 .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>

主.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中编写扩展程序,它可以毫无问题地工作!我需要做什么?

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

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

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