有没有办法让以下工作?
function TimerEvent()
{
TIMER_OBJ = setTimeout('Ajaxsessioncheck();', '<%=Timer%>');
}
我在onload事件中调用此函数,但是当Firefox中的时间已经过去时,它没有调用Ajaxsessioncheck函数。在IE和Chrome中,它可以正常工作。
感谢所有你的时间..我把代码更改为发送计时器作为整数现在我有一个不同的问题。在Ajaxsessioncheck()函数中,我将调用一个JSP页面,我没有在Firefox中获得响应。
答案 0 :(得分:2)
您已将'<%=Timer%>'
指定为字符串(由单引号表示),其中应为整数,如下所示:<%=Timer%>
您还应该将第一个参数指定为函数引用而不是字符串,因此您的最终输出将是:
setTimeout(Ajaxsessioncheck, <%=Timer%>);
答案 1 :(得分:1)
您不应该将第二个参数作为字符串传递。
TIMER_OBJ = setTimeout('Ajaxsessioncheck();', <%=Timer%>);
应该可以正常工作。但为了更加正确,你还应该避免将第一个参数作为字符串传递,否则会被评估 - eval
的隐藏执行发生,eval
是邪恶的。因此,这就是你想要的:
TIMER_OBJ = setTimeout(Ajaxsessioncheck, <%=Timer%>);
PS。在不使用关键字var
的情况下声明变量会导致它泄漏到全局范围。我不确定你是否意识到这一点。
答案 2 :(得分:1)
'&LT;%=定时器%GT;'是一个字符串 - 它应该是一个 int ,以毫秒为单位。
几乎所有以X开头的问题在Y中都不起作用归结为浏览器实现的差异。相近 document.getElementById在firefox 中不起作用,并且该元素具有名称但没有ID。适用于IE但不适用于Fx