pra*_*vin 19 html javascript jquery
我想使用javascript/jquery在页面加载完成时触发一个事件.
页面加载完全完成后,有没有办法触发事件或调用简单函数.
如果你有任何参考,请建议大家.
T.J*_*der 27
每个人都提到了ready函数(及其快捷方式),但即使在此之前,您也可以将代码放在script结束body标记之前的标记中(这是YUI和Google Closure人员推荐的),如下所示:
<script type='text/javascript'>
pageLoad();
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
此时,该脚本标记上方的所有内容都可在DOM中使用.
所以您的选择按发生顺序排列:
最早的:script在关闭body标签之前调用标签中的函数.DOM 已准备就绪(根据Google Closure人员的说法,他们应该知道;我也在一堆浏览器上测试过它).
早期:jQuery.ready回调(及其快捷方式).
在所有包含图像的页面元素完全加载之后:window onload事件.
这是一个实例:http://jsbin.com/icazi4,相关提取:
</body>
<script type='text/javascript'>
runPage();
jQuery(function() {
display("From <tt>jQuery.ready</tt> callback.");
});
$(window).load(function() {
display("From <tt>window.onload</tt> callback.");
});
function runPage() {
display("From function call at end of <tt>body</tt> tag.");
}
function display(msg) {
var p = document.createElement('p');
p.innerHTML = msg;
document.body.appendChild(p);
}
</script>
Run Code Online (Sandbox Code Playgroud)
(是的,我本可以使用jQuery作为display函数,但我开始使用非jQuery模板.)
Bru*_*oLM 25
当页面完全加载时(dom,images,...)
$(window).load(function(){
// full load
});
Run Code Online (Sandbox Code Playgroud)
当DOM元素加载时(不必加载所有图像)
$(function(){
// DOM Ready
});
Run Code Online (Sandbox Code Playgroud)
然后你可以触发任何事件
$("element").trigger("event");
Run Code Online (Sandbox Code Playgroud)
jQuery的:
$(function(){
// your code...this will run when DOM is ready
});
Run Code Online (Sandbox Code Playgroud)
如果要在加载所有页面资源(包括images/frames/DOM)后运行代码,则需要使用load事件:
$(window).load(function(){
// your code...
});
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
window.onload = function(){
// your code...
};
Run Code Online (Sandbox Code Playgroud)