我正在尝试构建一个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
当我点击“Click Me”时,它应该调用已注入页面的JS内部的testFunction();
。但事实并非如此。它甚至没有抛出错误。我也尝试将testFunction();
放在background.js文件中,但这也不起作用。
有什么建议吗?
答案 0 :(得分:1)
内联Java脚本不适用于JS注入,而是使用事件绑定
例如:
onload = function(){
document.getElementById(“xx”)。click = fun;
};