2012-01-13 16 views
0

私はオンラインアドオンビルダーでFirefoxアドオンを作成します。アドオン内からWebページ上の既存の関数をどのように使用できますか?このサイトは私のものではないので、イベントリスナーをバインドしてアドオンからイベントを送信することはできません。コンテンツスクリプトのWebページへのアクセスjs

更新:今、私はこのコードを持っていますが、それは動作しません:

main.js

var widgets = require("widget"); 
var tabs = require("tabs"); 
var data = require("self").data; 


var widget = widgets.Widget({ 
    id: "transfer", 
    label: "Transfer", 
    content: "Transfer", 
    width: 100, 
    onClick: function() { 
    tabs.activeTab.attach({ 
     // native implementation of window.confirm will be used 
     contentScriptFile: data.url("new.js") 
    }); 
    } 
}); 

new.js:

function foo() 
{ 
    call(); // function in webpage 

} 
unsafeWindow.foo(); 

答えて

1

あなたはにコンテンツスクリプトを挿入コンテンツスクリプトからパッケージを経由して)を呼び出すと、foo()という関数が呼び出されます。詳細については、documentationを参照してください。 Webページの機能に頼って、期待通りの動作をさせるが、そうでないかもしれないという警告を必ず読んでください。特に、関数が何かを返し、その結果を処理したい場合、誤ってセキュリティホールを導入する可能性があります。

+0

ありがとう、私は答えを –

+0

@更新しました:Heh、あなたは 'unsafeWindow.call()'を書くべきです... –

+0

私はそれを言ったが、それは言う:TypeError unsafeWindow.callは関数ではないページは関数呼び出し(){alert( "asd");} unsafeWindow.alert( "asd")で正常に動作します –