当 jQuery 放置在页面底部时,将所有 JavaScript 延迟到 jQuery 加载后的最佳方法是什么?我已经解决了获取所有 jQuery 实例并在 jQuery 加载后启动它们的问题,但是我需要找到一种很好的方法来获取所有使用<script src="file.js"></script>
.
在<head>
:
这会抓取页面上找到的所有 jQuery 函数,并将它们推送到一个数组中。
<script>
window.q = [];
window.jQuery = function (f) {q.push(f)};
</script>
之前</body>
:
就在正文之前,我从 Google API 获取带有本地回退的 jQuery 库,然后运行数组中的每个 jQuery 函数。
<script> window.jQuery || document.write('<script src=\"Scripts/jquery-1.7.1.js\"><\/script>')
// after jQuery loaded
jQuery(function () {
jQuery.each(q, function (index, f) {
f.call(document);
});
});
</script>
对于这个问题...
<script>
所以我最初在我的代码中有一堆标签。一种简单的方法是使用 jQuery.ajax() 调用它们并键入“脚本”,如下例所示,但我想探索更好的选择的可能性。
jQuery(function () {
jQuery.ajax({
url: "/scripts/somescript.js", // contains myFunction();
cache: true,
dataType: "script",
success: function() {
myFunction();
}
});
});
笔记:
这只适用于并非在每个页面上都使用的不常见脚本。它位于可以由站点管理员打开或关闭的小部件的上下文中,这就是为什么我没有将它与我在母版页 (MVC) 中放在 jQuery 下方的其他常见 JS 结合起来。
我已经使用 html5boilerplate 进行了一些修改来设置它,所以我实际上得到了一个脚本,它是 Modernizr 2.0。
让我知道您对改进的想法和想法!
谢谢!