Lot*_*rad 3 javascript google-chrome function undefined google-chrome-extension
我正在开发 Facebook 脚本,该脚本禁止所有喜欢在群组中发帖的人。
我的代码
var links = document.getElementsByClassName("UFINoWrap");
var hrefAttr=[];
var profileID=[];
var elements = document.getElementsByClassName('UFILikeSentenceText');
var buttonID = 0;
function openBanList(id)
{
var linkString = "https://m.facebook.com/browse/likes/?id=";
linkString+=profileID[id];
var win = window.open(linkString);
}
for (var i = 0; i < elements.length; i++)
{
var buttonStringHTML = " <button onclick=\"openBanList(id)\" id=\"";
buttonStringHTML+=buttonID;
buttonStringHTML+="\">Ban.</button>";
buttonID++;
elements[i].innerHTML+=buttonStringHTML;
}
for(var i=0; i<links.length; i++)
{
hrefAttr.push(links[i].getAttribute("href"));
var begin = (hrefAttr[i].indexOf("&id") +4);
profileID.push(hrefAttr[i].substring(begin, hrefAttr[i].length));
}
Run Code Online (Sandbox Code Playgroud)
控制台说 openBanList 未定义。
页面和内容脚本是分开的。 内容脚本不会注入到页面中! 相反,内容脚本与页面一起运行。页面无法访问内容脚本,内容脚本只能访问页面的dom(以及你的后台页面)。
当您通过 dom 添加 onclick 事件并单击它时,dom 会查找一个从未由它可以访问的页面部分定义的函数。如果您希望它起作用,您将必须在每个按钮上运行它:
mybuttonelement.onclick=function(){openbanlistthing(this.id)}
Run Code Online (Sandbox Code Playgroud)