html a标签 onload,动态加载script和css标签的onload问题

在firefox下,动态加载script标签和css标签,是可以简单地监听onload事件的,但在ie下,监听onload事件无效。为了解决这个问题,可以改用监听onreadystatechange,结合判断readyState的值是否等于loaded

或complete来判断是否onload。

YUI根据ie,webkit和其它做了三种情况区分。实际工作中,我们只用考虑ie和ff就差不多了,写了个简单的小demo,动态加载ie下的firebug组件:

=================================================

/p>

"http://www.w3.org/TR/html4/strict.dtd">

阿当制作

var s = document.createElement("script");

s.src =

'http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js';

s.type="text/javascript";

if(document.all){

s.onreadystatechange =

function(){

if(this.readyState == "loaded" || this.readyState ==

"complete"){

alert("loaded success in ie");

}

}

} else {

s.onload = function(){

alert("load

success");

}

}

document.body.appendChild(s);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用JavaScript的load事件来监听script和link标签完成事件。当一个外部脚本或样式表被成功后,它们会触发load事件。 下面是一个示例代码,用于在所有外部脚本和样式表完成后执行一个JavaScript文件: ```html <!DOCTYPE html> <html> <head> <title>Example</title> <script src="path/to/your/main.js"></script> <link rel="stylesheet" href="path/to/your/style.css"> <script> function loadJS() { var scripts = document.getElementsByTagName("script"); var loadedScripts = 0; for (var i = 0; i < scripts.length; i++) { scripts[i].onload = function() { loadedScripts++; if (loadedScripts == scripts.length) { // 所有脚本都已完成,执行你的代码 console.log("All scripts loaded"); // 外部的js文件 var externalScript = document.createElement("script"); externalScript.src = "path/to/your/external.js"; document.body.appendChild(externalScript); } }; } } function loadCSS() { var links = document.getElementsByTagName("link"); var loadedLinks = 0; for (var i = 0; i < links.length; i++) { links[i].onload = function() { loadedLinks++; if (loadedLinks == links.length) { // 所有样式表都已完成,执行你的代码 console.log("All stylesheets loaded"); } }; } } loadJS(); loadCSS(); </script> </head> <body> </body> </html> ``` 这个示例代码通过遍历页面上的script和link标签,为它们添了load事件监听器。当所有外部脚本和样式表都完成后,会先在控制台输出"All scripts loaded"和"All stylesheets loaded",然后再动态地向页面添一个外部的js文件。你可以将这个代码放到你的主JavaScript文件中,以便在页面时自动执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值