Javascript JS settimeout设置的回调函数在IE8中不起作用

Javascript JS settimeout设置的回调函数在IE8中不起作用,javascript,Javascript,右键单击div区域时,IE和FF中的行为会有所不同。在ff显示中,如果您不释放右键单击,则每1秒将调用一次显示\u short,但在IE中,如果您不释放右键单击,则不会调用显示\u short 但我希望在IE中,如果你不释放,它应该每1秒调用display_short。 有什么解决办法吗? var i; i=0; 函数环 { i=i+1; alertStringi; setTimeoutloop,1000; } setTimeoutloop,1000; 你好 请尝试IE8中的上述代码,它不

右键单击div区域时,IE和FF中的行为会有所不同。在ff显示中,如果您不释放右键单击,则每1秒将调用一次显示\u short,但在IE中,如果您不释放右键单击,则不会调用显示\u short

但我希望在IE中,如果你不释放,它应该每1秒调用display_short。 有什么解决办法吗?

var i; i=0; 函数环 { i=i+1; alertStringi; setTimeoutloop,1000; } setTimeoutloop,1000; 你好

请尝试IE8中的上述代码,它不会发出警报消息,直到您不释放右键单击

但在firefox中,即使你不释放右键,它也会发出警告信息

我想要IE8中的firefox功能

var i; i=0; 函数环 { i=i+1; alertStringi; setTimeoutloop,1000; } setTimeoutloop,1000; 你好

请尝试IE8中的上述代码,它不会发出警报消息,直到您不释放右键单击

但在firefox中,即使你不释放右键,它也会发出警告信息


我想要IE8中的firefox功能

在两种浏览器中,它对我来说都是一样的。oncontextmenu仅在右键释放时触发,而不是按下。您使用clearTimeout是没有意义的,因为您没有传递setTimeout函数返回的计时器句柄;在任何情况下,如果超时已经触发,则不需要清除超时。在两种浏览器中,对我来说都是如此。oncontextmenu仅在右键释放时触发,而不是按下。您使用clearTimeout是没有意义的,因为您没有传递setTimeout函数返回的计时器句柄;在任何情况下,如果超时已经触发,则不需要清除超时。
<html>  
 <head>  
 <script>  
 function addEvent( obj, type, fn ) {  

   if ( obj.attachEvent ) {  

     obj['e'+type+fn] = fn;  

     obj[type+fn] = function(){obj['e'+type+fn]( window.event );}  

     obj.attachEvent( 'on'+type, obj[type+fn] );  

   } else 

     obj.addEventListener( type, fn, false );  

 }  

 </script>  

 </head>  

 <body>  

 <!-- HTML for example event goes here -->  

 <div id="mydiv" style="border: 1px solid black; width: 100px; height: 100px; margin-top: 10px;"></div>  

 <script>  

 // Script for example event goes here  

 addEvent(document.getElementById('mydiv'), 'contextmenu', function(event) {  
     display_short('right-clicked (contextmenu)');  
 });  

 function display_short(str)  
 {  
     clearTimeout();  
     document.getElementById('mydiv').innerHTML = str;  
     if (str != '')  
         alert("hello");
         setTimeout("display_short('abcd')", 1000);  

 }  
 </script>  
 </body>  
 </html>