Javascript 加载函数问题

Javascript 加载函数问题,javascript,Javascript,我在主页上使用了这个javascript,该页面包含元素杂志简介中的h2标记,警报运行良好。如果我转到没有元素杂志简介的任何其他页面,则警告框不起作用。我怎样才能解决这个问题。我的代码是: window.onload = function(){ var yellows = document.getElementById('magazine-brief').getElementsByTagName('h2'); alert('hi'); } 您的脚本在第一次调用.getEleme

我在主页上使用了这个javascript,该页面包含元素杂志简介中的h2标记,警报运行良好。如果我转到没有元素杂志简介的任何其他页面,则警告框不起作用。我怎样才能解决这个问题。我的代码是:

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

您的脚本在第一次调用.getElementById时失败,将不再执行。我建议您首先检查元素是否存在:

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

如果页面没有id为“magazine brief”的元素,则
getElementsByTagName
将抛出一个错误,因为它试图调用null上的方法。您应该获取元素,然后检查它


Rui J抢先一步。

如果所述页面没有任何ID为“杂志简介”的元素,那么代码将在该点失败,不会转到下一行代码


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

是否要将
id
添加到
容器中?否,我的警报框必须在整个站点中工作,无论容器是否包含h2元素,我觉得你应该编辑并继续你的内容,而不是抛弃那些试图帮助你的人。你可以很容易地删减那页上的代码来帮助澄清这个问题。你说的是正确的,但我无法用大代码解释非常详细的内容,这就是我删减并提问的原因。如果这不好,我很抱歉。只有我这样做才能得到帮助。不要伤害任何人。谢谢。我使用了这个不工作窗口。onload=function(){var-brief=document.getElementById('magazine-brief');if(brief!==undefined){var-mybrief=document.getElementById('magazine-brief')。getElementsByTagName('h2');}警报('hi');}无效。错误:document.getElementById(“杂志简介”)为空