JavaScript Chrome扩展程序:未定义功能

时间:2015-10-30 13:08:26

标签: 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。

1 个答案:

答案 0 :(得分:3)

页面和内容脚本是不同的东西。 内容脚本不会注入页面!而是内容脚本与页面一起运行。页面无法访问内容脚本,内容脚本只能访问页面的dom(以及您的背景页面)。

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

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