jQuery在iOS 8中的窗口加载

3

我最近将手机更新到iOS 8,现在遇到了非常不寻常的问题。

以下是该问题的演示:

<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript">
alert("A");
jQuery(window).load(function(){
    alert("B"); 
});
</script>

在Safari iOS 7中,这将弹出对话框"A"和"B"。但是在Safari iOS 8中查看时,只有对话框"A"显示出来。
你有什么想法,为什么window load在iOS 8中不起作用?

请查看此答案:http://stackoverflow.com/a/32203566/736967 - Ronnie
2个回答

1
我没有一个确切的解决方案,但如果您的页面中有任何图片或CSS,则iOs8上的Safari不会触发加载事件。因此,您至少有两个解决方案:
1. 计算您的外部文件,如图像、CSS、脚本,并在它们上面附加load事件,并等待这些文件的last .load事件。 2. 在加载事件后编写标签视频/音频。 //EDIT: 所以我写了这个帮助我仍然使用视频:
var $video = $('.player');
$video.each(function(){
    this.outerHTML = this.outerHTML.replace('div', 'video')
});
$video = $('.player');

请查看此处的浏览器兼容性,以确定outerHTML是否与您的兼容性相符 https://developer.mozilla.org/en-US/docs/Web/API/Element/outerHTML#Browser_compatibility


0

使用 window.onload = function(){ }; 代替 jQuery(window).load(function(){ });,我成功解决了项目中的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接