猿问

Safari 12.1 卸载不触发 javascript

我有 javascript,它不在 Safari 中触发,但适用于所有其他浏览器(iOS Safari、Chrome、Firefox、Opera、IE)。


我已经在所有其他浏览器(iOS Safari、Chrome、Firefox、Opera、IE)上对此进行了测试,这在 Safari 11.1 上有效。


HTML:


body onload="showdiv('公民身份');"


Javascript:


    var pages = document.getElementsByClassName("page");


    function showdiv(id_page) 

    {

        for(var count_page=0; count_page<pages.length; count_page++)

        {

            str_id = pages.item(count_page).id;

            if (id_page == str_id)

            {

                document.getElementById(str_id).style.display = 'block';

                document.getElementById(str_id).focus();

            } // if (id_page == str_id)

            else

            {

                document.getElementById(str_id).style.display = 'none';

            } // if (id_page == str_id) else

        } // for(var count_page=0; count_page<pages.length; count_page++)

    } // function showdiv(id_page) 

我没有收到控制台错误消息。


该页面可以在http://www.ocetacea.net/MAT/EDLT6616/DigitalCitizenship/index.html找到


我的目标是只有“什么是数字公民?” 页面加载后。


泛舟湖上清波郎朗
浏览 112回答 1
1回答

catspeake

在 Safari 中,似乎onload在页面的所有内容都下载后会触发body事件。在您的情况下,您有大约 40mb 的视频需要在 Safari 触发正文加载操作之前完成加载。要解决此问题,您可以通过另一种方式触发 showdiv() 函数,例如:document.addEventListener('readystatechange', function() {&nbsp; if(document.readyState === 'interactive'){&nbsp; showdiv('Citizenship');&nbsp; }});注意:这在 Safari 中对我有用,但我还没有尝试过其他浏览器。此外,您可能希望阻止自动下载视频以节省数据传输成本。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答