1

我正在尝试构建一个 Chrome 扩展程序,该扩展程序使用注入的 JS 将我的服务器中的 HTML 插入服务器中的 Facebook 页面。然后,我希望能够从 HTML 中调用 Javascript 函数,并让它在 Facebook 页面上执行。问题是,当我从 HTML 文件中调用它们时,我放入 fhrun.js 文件中的 JS 函数不会在页面上运行。这可能与注入的 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

当我单击“单击我”时,它应该调用testFunction();已注入页面的 JS 中的哪个。但事实并非如此。它甚至不会引发错误。我还尝试将testFunction();其放入 background.js 文件中,但这也不起作用。

有什么建议么?

4

1 回答 1

1

内联 Java 脚本不适用于 JS 注入,请改用事件绑定

前任:

加载=函数(){

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

};

于 2012-11-16T12:40:52.683 回答