连接文档.ready事件:IE行为不同

Wiring document.ready event: IE behaving differently

本文关键字:IE 文档 ready 事件 连接      更新时间:2023-09-26

我习惯输入:$(function(){});语法来连接事件并在document ready事件中做其他事情。但我注意到IE8在从一些包含的js文件调用函数时出现了问题。如果页面没有设计师的代码,我就无法破解它(他放了一些幻灯片:D)。幻灯片的代码使用旧的$(document).ready(function(){});语法,它正在工作。我删除了我的代码,并将其与幻灯片初始化代码放在一起,然后事情就开始工作了。

我不明白这种奇怪的行为,但我想确保我不会再被这种虫子咬了。是否在ready事件触发后下载包含的文件?编辑:

<script src="jquery.js" type="text/javascript"></script>
<script src="custom.js" type="text/javascript"></script>
$(function(){
    myCustomFunction(); ///THIS IS CAUSING EXCEPTION IN IE 8
});

$(document).ready(function(){
    myCustomFunction(); ///THIS IS WORKS IN IE 8
});

ready事件仅在所有包含的文件完成下载后触发,这就是它的作用。

我以前也遇到过类似的问题,但这是由于我的脚本标签没有正确关闭,看看这里:$(document).ready()如何在IE 8中工作?

问题可能是因为JQuery尚未加载,请尝试在$(document)之前运行以下代码。准备好测试代码:

if (jQuery) alert('jquery loaded')
else alert('jquery not loaded')

我们有一个类似的浏览器兼容性问题,不记得是不是IE8了。这是由脚本标签的"type"属性引起的。

我们有一些标记为"text/javascript"(W3C推荐),"application/javascript",还有一些没有类型属性。JQuery位于标题的顶部,标记为"text/javascript",但仍然最后加载。

这个问题很容易解决,把相同的ContentType在所有的脚本标签