繁体   English   中英

jQuery 等价于 body onLoad

[英]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

事件处理程序on jQuery 文档

尝试load()

jQuery(document).load(myfunc)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM