[英]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.