Events Firefox未注册onclick事件处理程序
下面是为onclick事件分配事件处理程序的两段代码。版本一适用于IE、FF、Safari和Chrome。版本2在IE、Safari和Chrome中工作,但在FF中不工作。在版本1中,我在标记中注册事件处理程序。在版本2中,我使用了一种更新的、据说更健壮的方法来注册事件处理程序 使用firebug,看起来onclick事件处理程序没有注册,尽管我不明白为什么没有注册。任何想法都值得赞赏。谢谢 *************** Version One ****************************** < script type="text/javascript"> function handler() { // do something here } </script> < a id="playerFive" class="player" onclick="handler()"> < img src="./images/speakerIcon25pxFFF4E0.png" alt=""/> </a> ************************************************************ *************** Version Two ****************************** < script type="text/javascript"> function handler() { // do something here } </script> < a id="playerFive" class="player"> < img src="./images/speakerIcon25pxFFF4E0.png" alt=""/> </a> < script type="text/javascript"> playerFive.onclick = handler; < /script> ************************************************************ ***************第一版****************************** < script type=“text/javascript”> 函数处理程序() { //在这里做点什么 } </script> < a id=“playerFive”class=“player”onclick=“handler()”> < img src=“./images/speakerIcon25pxFFF4E0.png”alt=“”/> </a> ************************************************************ ***************第二版****************************** < script type=“text/javascript”> 函数处理程序() { //在这里做点什么 } </script> < a id=“playerFive”class=“player”> < img src=“./images/speakerIcon25pxFFF4E0.png”alt=“”/> </a> < script type=“text/javascript”> playerFive.onclick=处理程序; </script> ************************************************************Events Firefox未注册onclick事件处理程序,events,firefox,handler,Events,Firefox,Handler,下面是为onclick事件分配事件处理程序的两段代码。版本一适用于IE、FF、Safari和Chrome。版本2在IE、Safari和Chrome中工作,但在FF中不工作。在版本1中,我在标记中注册事件处理程序。在版本2中,我使用了一种更新的、据说更健壮的方法来注册事件处理程序 使用firebug,看起来onclick事件处理程序没有注册,尽管我不明白为什么没有注册。任何想法都值得赞赏。谢谢 *************** Version One **********************
FF不允许您将DOM元素作为按ID命名的javascript变量来访问
您需要改用
getElementById
。在最后一个脚本块中,playerFive
从未在任何地方定义过,您可能希望
document.getElementById('playerFive').onclick=handler;
你可以试试这个代码
if(document.all)// For IE
{
document.getElementById('playerFive').attachEvent('onclick',handler);
}
else // For FF
{
document.getElementById('playerFive').addEventListener('click',handler,false);
}
window.onload=函数(){
var div=document.getElementById(“dvClickMe”);
如果(部门附件)
div.attachEvent('onclick',sayHello);
其他的
setAttribute('onclick','sayHello()');
}
函数sayHello(){alert(“Hello!”;}
点击我!
上面的代码在IE8和FF 3.6.10上运行,哇,我不知道有任何浏览器。。。但我想我在IES糟糕的旧时代尽量不写JS实际上你的第二个版本和第一个版本是一样的。它不是“更新的”或“更健壮的”,您只是通过JavaScript在标记中设置侦听器。新方法是使用
addEventListener
。有用信息:
<html>
<head>
<script type="text/javascript">
window.onload = function() {
var div = document.getElementById("dvClickMe");
if(div.attachEvent)
div.attachEvent('onclick', sayHello);
else
div.setAttribute('onclick', 'sayHello()');
}
function sayHello() { alert("Hello!"); }
</script>
</head>
<body>
<div id="dvClickMe">Click me!</div>
</body>
</html>