JavaScript忽略缺少的DOM元素/事件

时间:2017-04-28 08:55:20

标签: javascript jquery html

我正在开发一个新的应用程序,其中不同的页面具有不同的DOM元素,如Map page具有一些特定于地图的元素,而Message page具有特定于消息的信息。为了减少请求的数量,我将所有脚本组合到一个文件并放入页脚。

但问题是,当我在Map Page时,为Message page上仅存在的缺失元素获取错误,我相信我错过了一些非常简单但我无法理解的内容

1 个答案:

答案 0 :(得分:0)

如果您不希望脚本停止,可以使用try和catch。

try{
var test = document.getElementById("someelementthatdontexsist");
alert(test.innerHTML);
}
catch(err){};

<击>

因此,Esko建议你需要使用&#34;如果&#34;检查你是否在正确的页面上运行适当的代码。

样品:

&#13;
&#13;
    var PageName = document.getElementsByTagName('body');

    document.getElementById("check_button").addEventListener('click', function () {
        if (PageName[0].getAttribute('id') == "map_page") {
            //do map_page things
            document.getElementById("page_name").innerText = PageName[0].getAttribute('id');
        }
        if (PageName[0].getAttribute('id') == "message_page") {
            //do message_page things
            document.getElementById("page_name").innerText = PageName[0].getAttribute('id');
        }
    });
&#13;
<body id="map_page">
    <button id="check_button">Check page</button>
    <span id="page_name">test
</span>
</body>
&#13;
&#13;
&#13;