1

挿入された JS を使用してサーバーから Facebook ページに HTML を挿入する Chrome 拡張機能を構築しようとしています。次に、HTML 内から Javascript 関数を呼び出して、Facebook ページで実行できるようにしたいと考えています。問題は、fhrun.js ファイルに配置した JS 関数が、HTML ファイルから呼び出したときにページ上で実行されないことです。これは、注入された JS の機能がどれも Facebook の JS コンソールから実行できないという事実に関係している可能性があります。

background.js ファイルで実行する Chrome スクリプトは次のとおりです。

chrome.tabs.executeScript(null,
    {file: "fhrun.js", allFrames: false, runAt: "document_start"},
    function(){
        //JS inserted
    }
);

これは簡略化された fhrun.js です (jquery も含まれています)。

function testFunction(){
console.log("Test function is working.");
}

$("#facebookDiv").load("https://path.to.my.server/ajax.html"); // this works great btw

これは ajax.html です:

<a href="#" onclick="testFunction();">Click Me</a> //link doesn't work

「Click Me」をクリックするとtestFunction();、ページに挿入された JS 内にあるものを呼び出す必要があります。しかし、そうではありません。エラーすら出ません。background.js ファイルの中に入れてみtestFunction();ましたが、それもうまくいきませんでした。

助言がありますか?

4

1 に答える 1

1

インライン Java スクリプトは JS インジェクションでは機能しません。代わりにイベント バインディングを使用してください

元:

オンロード = 関数 (){

document.getElementById("xx").click = fun;

};

于 2012-11-16T12:40:52.683 に答える