我在使用Firefox(版本32.0)运行此代码时遇到问题
<!DOCTYPE html>
<html>
<head>
<title>Test A</title>
<script>
function showCoords(evt){
alert(
"clientX value: " + evt.clientX + "\n" +
"clientY value: " + evt.clientY + "\n"
);
}
function begin(){
parag = document.getElementById("parag");
parag.addEventListener("click", function () {showCoords(event); }, false);
}
</script>
</head>
<body onload = "begin()">
<p id="parag">To display the mouse coordinates click in this paragraph.</p>
</body>
</html>
它适用于Chrome和其他浏览器,但是当我使用Firefox 32.0运行它时,它会给我这个错误:
ReferenceError:未定义事件
相反,此代码在Firefox中可以正常运行:
<!DOCTYPE html>
<html>
<head>
<title>TestB</title>
<script>
function showCoords(evt){
alert(
"clientX value: " + evt.clientX + "\n" +
"clientY value: " + evt.clientY + "\n"
);
}
</script>
</head>
<body>
<p onclick="showCoords(event)">To display the mouse coordinates click in this paragraph.</p>
</body>
</html>
有谁可以告诉我为什么前一个代码不起作用而后者呢? 同样,两者都适用于Chrome,但第一个是Mozilla Firefox(32.0)中的错误。 提前谢谢。
注意:不要告诉我更新浏览器(我必须使用它),也不要使用jquery或类似的。
答案 0 :(得分:1)
不确定它是否在Firefox中有效,因为我不想使用Firefox。
<!DOCTYPE html>
<html>
<head>
<title>Test A</title>
<script>
function showCoords(evt){
alert(
"clientX value: " + evt.clientX + "\n" +
"clientY value: " + evt.clientY// + "\n"
);
}
function begin(){
parag = document.getElementById("parag");
parag.addEventListener("click", function(e) {showCoords(e);}, false);
}
</script>
</head>
<body onload="begin()">
<p id="parag">To display the mouse coordinates click in this paragraph.</p>
</body>
</html>
答案 1 :(得分:1)
Firefox没有可用的全局window.event
,即使是最新版本(53.0),但Chrome也有。
答案 2 :(得分:0)
尝试将事件发送到begin函数,如begin(event),然后将其发送到js端的showCoords函数
同样在接受活动的js中,你可以尝试这个, event = e || windows.event所以你可以确保所有的浏览器都被覆盖