gpt4 book ai didi

javascript - 从 Chrome 扩展 AJAX 加载页面运行注入(inject)的 JS 函数

转载 作者:行者123 更新时间:2023-11-28 02:36:33 24 4
gpt4 key购买 nike

我正在尝试构建一个 Chrome 扩展,它使用注入(inject)的 JS 将 HTML 从我的服务器插入到我的服务器的 Facebook 页面中。然后,我希望能够从 HTML 中调用 Javascript 函数,并让它在 Facebook 页面上执行。问题是,当我从 HTML 文件调用它们时,我放入 fhrun.js 文件中的 JS 函数不会在页面上运行。这可能与Facebook上的JS控制台无法执行注入(inject)的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”时,它应该调用 testFunction(); ,它位于已注入(inject)页面的 JS 内部。但事实并非如此。它甚至不会抛出错误。我还尝试将 testFunction(); 放入 background.js 文件中,但这也不起作用。

有什么建议吗?

最佳答案

内联 Java 脚本不适用于 JS 注入(inject),请改用事件绑定(bind)

例如:

onload = 函数(){

document.getElementById("xx").click = fun;

};

关于javascript - 从 Chrome 扩展 AJAX 加载页面运行注入(inject)的 JS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13402340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com