繁体   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