这可以在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";
}
}
答案 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函数)。