javascript - 我如何识别 JavaScript 文件已加载

标签 javascript jquery html dom

我遇到以下问题:

我的网站正在头部加载 jQuery。它具有“异步”标志,因此它是异步加载的。 我使用 jQuery 编写了一些函数并操作内容。

当我在 jQuery 文件末尾实现此函数时,有时 jQuery 会在网站的整个 DOM 之前加载。这意味着我的函数无法找到特殊元素并且不执行任何操作。 如果我在 HTML 文件的末尾实现这个函数,当 DOM 已经加载时,就会出现网页已完成但 jQuery 尚未完成的情况。然后我得到了 jQuery 引用未定义的错误。

有谁知道我该如何解决这个困境?当DOM和JS文件加载完毕后,异步加载JS并调用函数?

谢谢, 延斯

最佳答案

这并不困难,也不需要像其他答案所建议的那样需要额外的库或轮询。

脚本标记,包括标记为async的标记,支持在加载时调用onload()函数,并且jQuery具有$(document).ready()加载 DOM 时的方法。您需要等待两者。所以:

<script async src='jquery.js' onload='jqueryloaded()'></script>
<script>
    function jqueryloaded() {
        $(document).ready(function () {
            // all your code
        });
    }
</script>

jsfiddle example

关于javascript - 我如何识别 JavaScript 文件已加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24222371/

相关文章:

javascript - 使用 jQuery 从 URL 弹出 iFrame

html - ASP.NET MVC 3 - 隔离 HTML.Raw 输出

javascript - 将单击事件绑定(bind)到 jquery 中的列表项的正确方法

javascript - $(this).parent().attr ('id' ) 获取 '[object window]' 而不是元素 ID

javascript - Flurry 有 HTML5 SDK 吗?

javascript - 如何调用嵌套在 forEach 循环内的 Javascript 函数

javascript - 获取边界矩形中的所有文本

Jquery如何获取数组?

javascript - 具有不同结果的多个 div 的 CSS 控制

jQuery FadeOut div 工作 - .load 然后 .fadeIn div 没有