窗口加载功能在Safari上无法正常工作

7
当使用Safari(版本11.1(13605.1.33.1.4))时,我尝试过的所有窗口事件函数都无法正常工作:
纯JavaScript: window.addEventListener('load',function(){ //在此处编写代码 }); window.onload = function(){ //在此处编写代码 };
jQuery: $(window).on('load',function(){ //在此处编写代码 }); $(window).load(function(){ //在此处编写代码 });
我不想使用文档准备函数,因为我必须等待页面上的所有图像加载完毕。如果您有其他想法,请随意讨论。

其他浏览器怎么样?这段代码在它们中间能正常工作吗? - Teemu
是的,其他浏览器都正常工作(在Chrome和Mozilla中进行了测试)。 - George Stoilov
今天我正在为同样的问题苦苦挣扎。我使用窗口加载事件,在窗口加载时从HTML中移除类。这段代码在Safari浏览器上不起作用。@GeorgeStoilov,你找到答案了吗? - Marcin Mroczko
遇到了同样的问题。我还没有弄清楚为什么在Safari中不起作用,但是我通过使用$('img.some-image').on('load', function() { // code here });来解决了这个问题 - 这对我有效,但与等待整个$(window)加载完全不同。不过,它可能会指引你朝正确的方向前进。 - Nathan
2个回答

0
这个怎么样?
if (document.readyState === 'complete') {
  callback();
} else {
  window.addEventListener('load', callback);
}

0
只是一个假的Ajax调用,使用空文件,在成功时执行你的操作,就像这样:
function yourFunction(whatShoudIaffect) {

  jQuery.ajax({
    type: "POST",
    url: "../../dummy.php",
    data: '',
    success: function (data) {
      $("#"+whatShoudIaffect).load(window.location + " #"+whatShoudIaffect+" > *");
    }
  });
};

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