是否可以将<body onLoad="myfunc()">
与jQuery的document.ready()
处理程序一起使用?
我找不到用jQuery实现<body onLoad>
的相同功能的方法。
用例的一个例子是facebook应用程序。 Iframe facebook应用程序需要使用调整iframe大小的FB.Canvas.setSize
函数。
只有在页面上的所有元素都加载完毕后才需要启动它。
答案 0 :(得分:34)
$(window).load(myfunc)
正是您正在寻找的。如果您正在使用iframe的加载事件,则可以将window
替换为iframe元素/选择器。
答案 1 :(得分:5)
这也有效:
$(window).load(function(){
// ..
myfunc();
// ..
});
答案 2 :(得分:4)
来自ready处理程序的jQuery API:
.ready()方法通常是 与&lt; body onload =“”&gt;不兼容 属性。如果必须使用负载, 要么不使用.ready()或使用 jQuery的.load()方法来附加load 事件处理程序到窗口或 更具体的项目,如图片。
答案 3 :(得分:1)
发现此线程更新了一些具有<body onload="someFunc()">
的旧代码,以便提供更新的答案:
请勿使用load()
。尽管$(document).ready(function(){...});
应该可以工作(取决于您的用例),但您实际上希望:$(window).on('load', function(){...});
更紧密地模仿<body onload="...">
Some threads建议自jQuery 1.8(以及.unload()
和.error()
以来不推荐使用此方法,应将其替换为正确的.on()
实现。我已经确认在3.3.1上使用load()
会导致错误,即:jquery.min.js中的indexOf is not a function
答案 4 :(得分:1)
.load(),
.unload()
或.error()
。
在代码中查找这些别名,然后将其替换为.on()方法
$(window).on('load', function(){...})
答案 5 :(得分:0)
尝试load()
:
jQuery(document).load(myfunc)