javascript 页面加载完成后执行
javascript当页面dom模型加载完成后才执行javascript1、不能是使用<bodyonload="">2、要做到浏览器兼容非jqueryExt存...
javascript 当页面dom模型加载完成后才执行javascript1、不能是使用<body onload="">2、要做到浏览器兼容 非jquery Ext 存javascript脚本
展开
4个回答
展开全部
function ready(fn) {
if( fn === undefined ) return;
var hasDone = false;
if ( document.readyState === "complete" ) {
return setTimeout( fn, 1 );
}
if ( document.addEventListener ) {
document.addEventListener( "DOMContentLoaded", function(){
if( !hasDone ){
fn.apply(window.document,arguments);
hasDone = true;
}
}, false );
window.addEventListener( "load", fn, false );
} else if ( document.attachEvent ) {
document.attachEvent( "onreadystatechange", function(){
if( document.readyState === "complete" ){
document.detachEvent( "onreadystatechange",arguments.callee);
if( !hasDone ){
fn.apply(window.document,arguments);
hasDone = true;
}
}
} );
var toplevel = false;
try{
toplevel = window.frameElement == null;
}catch( e ){}
if( document.documentElement.doScroll && toplevel ){
(function(){
if( hasDone ){
return;
}
try{
document.documentElement.doScroll("left");
}catch( e ){
setTimeout( arguments.callee, 1 );
return;
}
if( !hasDone ){
fn.apply(window.document,arguments);
hasDone = true;
}
})();
}
window.attachEvent( "onload", fn );
}
}
if( fn === undefined ) return;
var hasDone = false;
if ( document.readyState === "complete" ) {
return setTimeout( fn, 1 );
}
if ( document.addEventListener ) {
document.addEventListener( "DOMContentLoaded", function(){
if( !hasDone ){
fn.apply(window.document,arguments);
hasDone = true;
}
}, false );
window.addEventListener( "load", fn, false );
} else if ( document.attachEvent ) {
document.attachEvent( "onreadystatechange", function(){
if( document.readyState === "complete" ){
document.detachEvent( "onreadystatechange",arguments.callee);
if( !hasDone ){
fn.apply(window.document,arguments);
hasDone = true;
}
}
} );
var toplevel = false;
try{
toplevel = window.frameElement == null;
}catch( e ){}
if( document.documentElement.doScroll && toplevel ){
(function(){
if( hasDone ){
return;
}
try{
document.documentElement.doScroll("left");
}catch( e ){
setTimeout( arguments.callee, 1 );
return;
}
if( !hasDone ){
fn.apply(window.document,arguments);
hasDone = true;
}
})();
}
window.attachEvent( "onload", fn );
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-11-10 · 知道合伙人互联网行家
关注
展开全部
1.需要给window.onload指定一个函数既可以在页面加载完成时自动执行MyCoolInitFunc函数
<script type="text/javascript" >
window.onload = MyCoolInitFunc
</script>
2.如果希望在页面加载完成后同时并行执行多个函数,可以通过下面的JS代码实现
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
}
else {
window.onload = function() {
oldonload();
func();
}
}
}
<script type="text/javascript" >
window.onload = MyCoolInitFunc
</script>
2.如果希望在页面加载完成后同时并行执行多个函数,可以通过下面的JS代码实现
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
}
else {
window.onload = function() {
oldonload();
func();
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最简单的办法,将你要执行的JS标签放到页面的</body>后面;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用如下函数试试
function addLoadEvent(func){
var oldonload = window.onload;
if (typeof window.onload!='function'){
window.onload = func;
}
window.onload = function(){
oldonload();
func();
}
}
调用某函数 加上 addLoadEvent(func/*函数名*/)
function addLoadEvent(func){
var oldonload = window.onload;
if (typeof window.onload!='function'){
window.onload = func;
}
window.onload = function(){
oldonload();
func();
}
}
调用某函数 加上 addLoadEvent(func/*函数名*/)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询