IE8-内容加载后如何运行jquery代码?

IE8-内容加载后如何运行jquery代码?,第1张

IE8-内容加载后如何运行jquery代码?

这是一个会影响IE6 7和8的错误。jQuery的文档就绪处理程序只有在IE 6 7和8中的窗口加载事件之前或之后才会触发。在IE9中不会发生

解决它的一种方法是自己处理事件。

<body >    <!--[if lt IE 9]>    <script>        $('body').removeClass('jquerydomready');    </script>    <![endif]-->

然后在脚本中使用以下命令:

function init() {    // pre here will be ran when document is ready    $("body").css("background-color","green");}if ( $("body").is(".jquerydomready") ) {    $(init); // not oldIE}else {    // oldIE way    document.onreadystatechange = function() {        if (document.readyState == "interactive") init();        }​}

但是请记住,如果您正在执行ajax请求并期望它们能够快速发生,否则代码将无法正常工作,我建议您迁移到不需要它们快速发生的系统,因为您不能始终依赖网络快速。

票证:http :
//bugs.jquery.com/ticket/12282

目前,它实际上并未标记为错误,但是,如果您遵循此问题的历史记录,则在jQuery的整个开发过程中已对其进行了多次修复和未修复。

编辑:我不确定这个答案的IE6部分,我还没有对此进行过IE6测试。

这是支持性的JSFiddle,表明它在IE7和8中不正确地等待(再次在IE6中未测试)。

在上述修复之前:http :
//jsfiddle.net/PFWmS/

完成上述修复后:http :
//jsfiddle.net/PFWmS/7



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5016452.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-15
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存