簡體   English   中英

從Chrome擴展程序AJAX加載的頁面運行注入的JS函數

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM