作为某些背景知识,我正在构建一个Web滑块 Activity ,该 Activity 适合/扩展输出HTML的另一软件。关键是我对软件如何输出HTML元素几乎没有控制,但是我可以在软件输出的基础上添加任意JavaScript和HTML元素。

我想做的是将要添加的某些图像的加载延迟到所有软件的输出元素加载完毕之后。到目前为止,我一直在等待加载图像,直到触发窗口加载事件后,它才能正常工作。像这样:

//-----Simplified example-----
$(document).on('ready', funciton(){
    //Some stuff to set things up
    $(window).one('load', function(){
        $('#SomeDiv').append('
            <img class= "someClass"
            id="arbitraryImage1"
            src="folder/image1.jpg"
        ');
    });
});

尽管它现在正在运行,但我不确定如果出现问题会怎样。该软件输出的HTML有一个坏习惯,即包含一些不需要的内容,以及偶尔在较慢的连接上不加载图像。大多数情况下,如果失败了,用户将不会注意到,因此这不是问题。但是,我想知道出现问题时$(window).one('load', function(){})的行为,以便我可以解决错误或至少使 Activity 失败。任何帮助或与文档的链接将不胜感激,谷歌搜索时,“窗口”和“负载”的通用性会带来很多不相关的信息。

总结一下:

当窗口无法加载资源(图像,css等)时,$(window).one('load', function(){})的行为是什么?

最佳答案

好问题。该文件说:



https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onload

但实际上,您会发现在最初解析文档(样式表,外部脚本,img标签)或加载失败时,所有排队等待加载的 Assets 都会触发加载事件。 只要没有请求仍在等待,这些 Assets 是否已成功加载这一事实与正在触发的load事件无关。

我认为该文档需要澄清,因为它无法解决您的问题。

10-04 22:30
查看更多