mac窗口加载并不总是激发

时间:2015-06-22 09:38:28

标签: javascript jquery

我的加载事件并不总是在Safari上的safari或chrome中触发(safari版本7.0.5,chrome版本43.0.2357.124)。它在firefox和我的任何Windows浏览器中都可以正常工作。

x

这两个功能都会触发,或者都没有。

有人知道这里发生了什么吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

由于JS是在一个单独的文件中,我可以想象,当它运行时,load事件已被触发。
但是,您可以使用document.readyState检测到这一点(另请参阅this question) 它有三个可能的值:

  • loading - 解析仍在进行中
  • interactive - 解析已完成,但资源正在加载
  • complete - pasing已完成,资源已加载

我建议你检查document.readyState == 'complete'是否运行你的代码,否则注册一个事件监听器:

~function()
{
    var loadJS = function()
    {
        alert("loaded js");
    };
    var loadJQ = function()
    {
        alert("loaded jquery");
    };
    if(document.readyState == 'complete')
    {
        loadJS();
        loadJQ();
    }
    else
    {
        window.addEventListener('load', loadJS, false);
        $(window).bind('load', loadJQ);
    }
}();