onload功能问题

时间:2011-02-25 15:29:03

标签: javascript

我在主页上使用这个javascript,并且该页面包含元素杂志中的h2标签,警报运行良好。如果我去任何其他没有元素杂志的页面 - 提示框不起作用。我怎么解决这个问题。我的代码是:

window.onload = function(){
    var yellows = document.getElementById('magazine-brief').getElementsByTagName('h2');
    alert('hi');
}

3 个答案:

答案 0 :(得分:2)

您的脚本在第一次调用.getElementById时失败,并且不再执行任何操作。我建议你先检查元素是否存在:

var brief = document.getElementById('magazine-brief');
if (brief !== undefined) { // do the rest }

答案 1 :(得分:0)

如果页面没有id为“magazine-brief”的元素,那么getElementsByTagName将抛出错误,因为它试图在null上调用方法。你应该得到元素,然后检查它。

Rui J打败了我。

答案 2 :(得分:0)

如果所述页面没有任何带有ID的元素“magazine-brief”,那么代码将在那时失败而不会转到下一行代码。

这就是为什么警报是判断代码是否失败的有用方法的原因。您发布的代码将指示页面是否具有元素名称“magazine-id”。