[英]jQuery equivalent of body onLoad
是否允许将<body onLoad="myfunc()">
与 jQuery 的document.ready()
处理程序一起使用? 我找不到使用 jQuery 实现<body onLoad>
相同功能的方法。
用例的一个示例是 Facebook 应用程序。 iframe facebook 应用程序需要使用调整 iframe 大小的FB.Canvas.setSize
函数。
只有当页面上的所有元素都完成加载时,我才需要启动它。
$(window).load(myfunc)
就是你要找的。 如果您正在处理 iframe 的加载事件,您可以用 iframe 元素/选择器替换window
。
这也有效:
$(window).load(function(){
// ..
myfunc();
// ..
});
从就绪处理程序上的 jQuery API:
.ready() 方法通常与 <body onload=""> 属性不兼容。 如果必须使用 load,请不要使用 .ready() 或使用 jQuery 的 .load() 方法将 load 事件处理程序附加到窗口或更具体的项目,如图像。
.load(),
.unload()
或.error()
因为jQuery的1.8被弃用。 在您的代码中查找这些别名并将它们替换为 .on() 方法
$(window).on('load', function(){...})
发现此线程更新了一些具有<body onload="someFunc()">
旧代码,以便给出更新的答案:
不要使用load()
。 而$(document).ready(function(){...});
应该工作(取决于你的用例)你真正想要的: $(window).on('load', function(){...});
更接近地模仿<body onload="...">
一些线程建议这自 jQuery 1.8(以及.unload()
和.error()
)以来已被弃用,应替换为适当的.on()
实现。 我已经确认在 3.3.1 上使用load()
导致错误,即: indexOf is not a function
jquery.min.js 中indexOf is not a function
尝试load()
:
jQuery(document).load(myfunc)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.