Settimeout()javascript函数被忽略
我的aspx页面中有一个简单的按钮:Settimeout()javascript函数被忽略,javascript,function,settimeout,Javascript,Function,Settimeout,我的aspx页面中有一个简单的按钮: <asp:Button ID="a1" runat="server" OnClientClick="test2();" /> SetTimeout被完全忽略-警报不会显示,计时器也不会等待。 我在这个网站上看到了大约10篇关于这个问题的帖子,没有一个解决方案是有效的。 我尝试调用另一个函数而不是警报函数,我尝试使用函数(){..}调用带有参数的函数。 我还尝试直接从OnclientClick函数调用Settimeout: OnClientCli
<asp:Button ID="a1" runat="server" OnClientClick="test2();" />
SetTimeout被完全忽略-警报不会显示,计时器也不会等待。
我在这个网站上看到了大约10篇关于这个问题的帖子,没有一个解决方案是有效的。
我尝试调用另一个函数而不是警报函数,我尝试使用函数(){..}调用带有参数的函数。
我还尝试直接从OnclientClick函数调用Settimeout:
OnClientClick="setTimeout('alert(\'hello\')',1250);"
不起作用,Settimeout被忽略!
我正在使用ie9。请尝试:
window.setTimeout(function () { alert('hello'); }, 1250);
请尝试:
window.setTimeout(function () { alert('hello'); }, 1250);
JavaScript运行良好。页面看起来是一样的,javascript看起来好像不起作用,但一切都按照设计进行 下面是正在发生的事情 用户单击按钮。 JavaScript被执行。设置settimeout并开始计时。 runat=“server”现在会发布到服务器(但是超时时间仍然在滴答滴答地响) objects OnClick事件的代码在服务器上运行(正在服务器端重建页面)。 新的响应流将发送到客户端浏览器。 客户端浏览器捕获它并为新页面呈现“新”页面重置javascript(这是您要求的新ASPX页面!) 因此,即使在不同的表单元素上运行runat=“server”,也会停止settimeout或setinterval方法的最终执行 在我看来,更好的编码方法是在客户端使用AJAX将值发布到服务器,在服务器的页面上捕获它们,构建html或javascript并将它们发送回客户端浏览器,以捕获并替换元素id的innerHTML或评估javascript。。。更少的开销,更快,更好,更优雅,更多的控制。如果用户使用.NET构建HTML片段,则可以使用stringbuilder,因为这比多个字符串串联要快得多
希望这能有所帮助。JavaScript运行良好。页面看起来是一样的,javascript看起来好像不起作用,但一切都按照设计进行 下面是正在发生的事情 用户单击按钮。 JavaScript被执行。设置settimeout并开始计时。 runat=“server”现在会发布到服务器(但是超时时间仍然在滴答滴答地响) objects OnClick事件的代码在服务器上运行(正在服务器端重建页面)。 新的响应流将发送到客户端浏览器。 客户端浏览器捕获它并为新页面呈现“新”页面重置javascript(这是您要求的新ASPX页面!) 因此,即使在不同的表单元素上运行runat=“server”,也会停止settimeout或setinterval方法的最终执行 在我看来,更好的编码方法是在客户端使用AJAX将值发布到服务器,在服务器的页面上捕获它们,构建html或javascript并将它们发送回客户端浏览器,以捕获并替换元素id的innerHTML或评估javascript。。。更少的开销,更快,更好,更优雅,更多的控制。如果用户使用.NET构建HTML片段,则可以使用stringbuilder,因为这比多个字符串串联要快得多
希望这有帮助。100%有效。试试这个
$(document).ready(function () {
$('#<%= DoesNotwork.ClientID %>').click(function (e) {
e.preventDefault();
setTimeout(function () {
alert("Hello");
$("form").submit();
},
3000);
});
});
$(文档).ready(函数(){
$('#')。单击(函数(e){
e、 预防默认值();
setTimeout(函数(){
警惕(“你好”);
$(“表格”)。提交();
},
3000);
});
});
它100%工作,试试这个
$(document).ready(function () {
$('#<%= DoesNotwork.ClientID %>').click(function (e) {
e.preventDefault();
setTimeout(function () {
alert("Hello");
$("form").submit();
},
3000);
});
});
$(文档).ready(函数(){
$('#')。单击(函数(e){
e、 预防默认值();
setTimeout(函数(){
警惕(“你好”);
$(“表格”)。提交();
},
3000);
});
});
您是否在控制台中收到错误?您是否尝试了一个简单的警报(“”),以查看该事件是否正在执行。@詹姆斯·希尔:如何在控制台中看到EEOR?@Sandeep Bansai:是的,调用了该函数,我甚至设置了一个断点并对其进行了调试。它只是跳过setTimeout行。无警报,无延迟。您是否尝试过window.setTimeout()
?可能有一些关闭问题。你在控制台中有错误吗?你是否尝试过一个简单的警报(“”)来查看该事件是否正在执行。@james Hill:我如何在控制台中看到EEOR?@Sandeep Bansai:是的,调用了该函数,我甚至设置了一个断点并对其进行了调试。它只是跳过setTimeout行。无警报,无延迟。您是否尝试过window.setTimeout()
?也许有一些关闭问题,然后我想我们需要更多的代码。某个地方有人破译了密码。控制台说什么?(在Chrome上用Ctrl+Shift+j打开控制台。)好的,我想我找到了sonthing,但我不明白:此代码不会导致回发,因此浏览器有时间等待超时结束并显示消息,它可以工作:。这段代码导致回发,当它结束时,超时还没有结束,并且没有显示消息-忽略它:为什么?我不明白为什么没有回发,settimeout就不能工作,而且不能……我不明白你最后的评论,对不起。你能创建一个实时示例并给我们URL吗?那么我想我们需要更多的代码。某个地方有人破译了密码。控制台说什么?(在Chrome上用Ctrl+Shift+j打开控制台。)好的,我想我找到了sonthing,但我不明白:此代码不会导致回发,因此浏览器有时间等待超时结束并显示消息,它可以工作:。这段代码导致回发,当它结束时,超时还没有结束,并且没有显示消息-忽略它:为什么?我不明白为什么没有回发,settimeout就不能工作,而且不能……我不明白你最后的评论,对不起。你能创建一个实时样本并给我们URL吗?