TypeError:Value未实现接口EventListener

时间:2013-07-24 21:44:42

标签: javascript html firefox

这可以在IE和Chrome中找到,但是,在Firefox中,我收到错误:

“TypeError:Value没有实现接口EventListener。”

此代码由php脚本发布,因此我必须首先添加if语句,以确定id是否存在,以避免Chrome中出现错误。

以下是代码:

HTML    <a id="Logout">Logout</a>

的JavaScript

if (document.getElementById("Logout") != null) {
    var Logout_Link = document.getElementById("Logout");
    Logout_Link.addEventListener('click', Logout, true);

    function Logout() {            
        var just_logged_out = 1;
        window.location.href = "logout-redirect.php";
    }
}

1 个答案:

答案 0 :(得分:4)

if (…) {
    function …() {            
        …
    }
}

无效。函数声明必须位于块their behaviour is implementation-dependent内的函数或程序体的顶层。将它移到if语句之外:

function Logout() {            
    var just_logged_out = 1;
    window.location.href = "logout-redirect.php";
}

if (document.getElementById("Logout") != null) {
    var Logout_Link = document.getElementById("Logout");
    Logout_Link.addEventListener('click', Logout, true);
}

因此,如果函数未正确声明,那么奇怪的错误信息是什么?您可能期望像WRONG ARGUMENTS ERROR: handler is 'undefined'这样的东西。但实际上不是,Logout does refer to your link element。这确实没有实现EventListener接口(JavaScript函数)。