JavaScript Chrome 扩展 : Function is not defined

标签 javascript function google-chrome google-chrome-extension undefined

我正在开发 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));
}

控制台显示未定义 openBanList。

最佳答案

页面和您的内容脚本是分开的。 内容脚本不会注入(inject)到页面中!相反,内容脚本会与页面一起运行。页面无法访问内容脚本,内容脚本只能访问页面的dom(和你的后台页面)。

当您通过 dom 添加 onclick 事件并单击它时,dom 会查找它可以访问的页面部分从未定义的函数。如果你想让它工作,你将不得不在你的每个按钮上运行它:

mybuttonelement.onclick=function(){openbanlistthing(this.id)}

关于JavaScript Chrome 扩展 : Function is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33436771/

相关文章:

javascript - 使用错误的 ng-pattern 重置 angularjs 表单字段

javascript - 提交 JQuery 后隐藏表单

javascript - 通过 'require'获取的数据的修改未实现

jquery - 当两个div同时点击jquery时如何停止函数多重触发

html - Chrome <音频> 播放速率

javascript - 带有服务器端 Javascript 的经典 ASP,在不同的文件中调用函数

javascript - 我的带有对象和方法的 JavaScript 代码无法正常工作

.net - Powershell:调用 .NET 函数总是需要括号吗?

弹出菜单的CSS在Chrome中工作不同

node.js - 多核处理器上的 Node Js