2

Firefox拡張機能を使用して、Firefox内でWebページからJavaScriptコードを呼び出し/実行/再定義するクリーンな方法を探しています。私の一時的な解決策は、スクラッチパッド (Shift-F4、Ctrl-A、Ctrl-V、Ctrl-R) を使用することです。問題なく動作しますが、残念な回避策です。Greasemonkey は私の最後の手段です。

これまでのコードは次のとおりです。

main.js:

exports.main = function() {
  var data = require("self").data;
  var pageMod = require("page-mod");
  pageMod.PageMod({
    include: "*.google.com",
    contentScriptFile: data.url("my-script.js")
  });
};

my-script.js

$('#mydiv').html('yo')
alreadyHere.sayHello=function (){alert('Bonjour');}


このコードは my-script.js の 1 行目で停止し、$ が定義されていないことを示しています。名前空間/スコープの問題。

スクラッチパッドのように、拡張機能から Web ページの名前空間/スコープ内で作業するにはどうすればよいですか?

編集: Firefox のメイン ウィンドウのwindow.contentと Web ページのalreadyHere.sayHelloの間にリンクがあるはずですよね?

window.content.(things).alreadyHere.sayHello();

ここで何が欠けていますか?

4

2 に答える 2

1

ええ。

window.content.document.defaultView.wrappedJSObject.$('#mydiv').html('yo')
window.content.document.defaultView.wrappedJSObject.alreadyHere.sayHello();

ここでMridang Agarwallaに感謝します

于 2012-12-20T23:35:41.320 に答える
0

Firebug コンソールで試しましたか?

また、

コードが範囲内にあることを確認してください

$(document).ready(function () {
  //your code here
});

最も重要なjQueryが適切にロードされています

于 2012-12-20T15:36:27.163 に答える