为了账号安全,请及时绑定邮箱和手机立即绑定

Safari 12.1 卸载不触发 javascript

Safari 12.1 卸载不触发 javascript

泛舟湖上清波郎朗 2021-06-10 15:02:06
我有 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找到我的目标是只有“什么是数字公民?” 页面加载后。
查看完整描述

1 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

在 Safari 中,似乎onload在页面的所有内容都下载后会触发body事件。


在您的情况下,您有大约 40mb 的视频需要在 Safari 触发正文加载操作之前完成加载。要解决此问题,您可以通过另一种方式触发 showdiv() 函数,例如:


document.addEventListener('readystatechange', function() {

  if(document.readyState === 'interactive'){

  showdiv('Citizenship');

  }

});

注意:这在 Safari 中对我有用,但我还没有尝试过其他浏览器。


此外,您可能希望阻止自动下载视频以节省数据传输成本。


查看完整回答
反对 回复 2021-06-11
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信