我是JavaScript的新手。
我想在aspx页面中加载页面后调用JavaScript / jQuery函数。
我尝试使用
window.load = function(){}
是否可以在Page_PreRender期间在aspx页面中调用而不是在代码后面调用,以便我可以延迟JavaScript函数?
Page_PreRender
我尝试了setTimeout("function()",5000)来解决问题。
setTimeout("function()",5000)
但是setTimeout()似乎与某些浏览器不兼容,例如:在Google Chrome中导致循环。
setTimeout()
setTimeout自1996年以来与所有浏览器兼容。你应该避免评估“functionName()”,而是:
setTimeout
setTimeout(functionName,5000)
更新:如果您最初期望传递给函数的变量而在超时时没有传递,则需要执行以下操作:
setTimeout(function() { functionName() },5000)
因为setTimeout会将超时ID传递给函数,如果它像第一个例子中那样被调用。
但是你错误地调用了onload ,所以你需要这样做:
onload
window.onload=function() { // your stuff }
或者,因为您使用的是jQuery ,所以:
$(document).ready(function() { // your stuff });
或者只是这样:
$(function() { // your stuff });
如果您想100%确定在ACTUALLY页面加载时,请使用:
$(window).load(function(){ //After EVERYTHING loads, including images. })
另一个解决方案, onload可以工作,但是一旦DOM准备好就会加载,但是当窗口实际完成加载时它不会加载。
如果您要使用jQuery,则最好使用以下方法之一将事件附加到文档就绪事件:
$(document).ready(callback);
要么
$(document).ready(function () { /* do stuff */ });
$(callback);
$(function () { /* do stuff */ });
$(document).ready(function(){ //Code goes here });
或旧式
最好使用像jQuery这样的框架。 在jQuery中,您可以定义一个这样的函数:
$(document).ready(function() { });
这样在DOM完全加载时将调用它。
可以在此处找到ready()函数的完整文档。