1

私は SDK 1.13 を持っており、pageload API を使用して、html フォームが Firefox ブラウザにロードされたときに警告メッセージを表示したいと考えています。しかし、コンソールでエラーが発生しています:requireが定義されていません。アドオン SDK の cfx ファイルをファイル システム ディレクトリにリンクしました。

ln -s PATH_TO_SDK/bin/cfx ~/bin/cfx

それでも、このエラーを解決できません。これが私のコードです(XULファイルに含まれています):

var pageMod = require("sdk/page-mod");
    pageMod.PageMod({
    include: "*.html",
    contentScript: 'window.alert("Page matches ruleset");'
}); 
4

2 に答える 2

1

SDK をインストールし、拡張機能内で bin\activate を実行してから cfx run を実行したと思いますよね?

このようなものを XUL ファイルから実行することはできません。これが、require... が機能しない理由です。これらはすべて main.js (lib フォルダー内) にある必要があります。(データ フォルダーに) 作成するコンテンツ スクリプトを介して通信する必要があります。HTMLが読み込まれると(コンテンツスクリプトからwindow.listenerなどを追加します)、port.emit( "loaded")などを使用し、main.jsで何かをリッスンする必要がありますaddon.port("loaded",somefunction) のように。これについては、多くの優れたドキュメントがあります。

于 2014-08-18T22:02:58.043 に答える
0

XUL ファイルは、SDK モジュールとは正反対です。SDK と XUL の比較

于 2013-08-22T21:39:59.100 に答える