Javascript 为chrome按类获取元素

Javascript 为chrome按类获取元素,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在尝试将此代码添加到chrome扩展中,以便在聊天室可用时提醒我。它在一个类名为shoutbox的div中,到目前为止它不工作 function Detection(){ if(document.getElementsByClassName("shoutbox")!=null){ alert('Chat is available.') } } Detection(); 更新的代码:页面加载且警报对话框从未出现 function Detection(){

我正在尝试将此代码添加到chrome扩展中,以便在聊天室可用时提醒我。它在一个类名为shoutbox的div中,到目前为止它不工作

function Detection(){
    if(document.getElementsByClassName("shoutbox")!=null){
      alert('Chat is available.')
    }
}

Detection();
更新的代码:页面加载且警报对话框从未出现

function Detection(){
    if(document.getElementsByClassName("shoutbox").length > 0){
        alert('Chat is available.')
    }
}

window.onload = Detection;

==null
不会检测到空数组(无结果)。你可以写

if(document.getElementsByClassName("shoutbox").length > 0){
  alert('Chat is available.')
}

document.getElementsByClassName(“shoutbox”)
返回元素数组,如果找不到任何元素,则返回空白数组。要查看元素是否存在,请检查数组的长度

if(document.getElementsByClassName("shoutbox").length > 0){

如果chatbox从一开始就不在页面上,并且以后添加(很容易选中-只需查看页面源代码),则可以监视
domsubtreemedited
事件,该事件将在对页面DOM进行任何修改时触发:

document.addEventListener('DOMSubtreeModified', function(e) {
    if(document.getElementsByClassName("shoutbox").length > 0){
        alert('Chat is available.')
    }
});

你能详细说明一下它不起作用吗?如果您接受前面问题中的一些答案,您也可能会获得更大的成功。请尝试使用this=document.getElementsByClassName(“shoutbox”)。value!=nullI还没有做过扩展,但是您是否仍然需要执行window.onload或某种形式的domready?它可能不存在,因为它尚未加载。第一个(
“shoutbox”
)中的类名与第二个(
“shoutbox”
)中的类名不同。可能该聊天框从一开始就不在页面上,后来才添加?感谢您的输入,我添加了更新的代码,警报对话框从未出现过。我知道为什么会出现这种情况?是的,我看到并更正了它,但仍然有相同的内容issue@jennifer:您确定页面中有一个类为“shoutbox”的div吗?如下所示
code-Shoutbox

谢谢您的帮助。我添加了更新的代码,警告对话框不会出现马特在评论你的问题时提到的打字错误。