[英]Running injected JS functions from a Chrome extension AJAX loaded page
我正在尝试构建一个Chrome扩展程序,该扩展程序使用注入的JS从服务器将HTML插入服务器中的HTML页面。 然后,我希望能够从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文件中,那也不起作用。
有什么建议么?
内联Java脚本不适用于JS Injection,请改用事件绑定
例如:
onload = function(){
document.getElementById(“ xx”)。click = fun;
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.