javascript - 添加 defer 到 Scripts functions.php
问题描述
在我网站的functions.php
脚本中就像
add( 'scripts', '//ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js' );
这显示在源代码上
<script src="...jquery.min.js"></script>
想在代码中添加“延迟”
<script src="...jquery.min.js" defer></script>
请任何人指导我实现这一目标?
解决方案
通过该文件functions.php
,我假设您使用的是 WordPress。推迟加载 javascript 最好使用类似插件wprocket
或优化器插件的其他免费变体。
但是如果你想自己做,你可以使用下面的代码:
function defer_parsing_of_js ( $url ) {
if ( FALSE === strpos( $url, '.js' ) )
return $url;
if ( strpos( $url, 'jquery.js' ) )
return $url;
return "$url' defer ";
}
add_filter( 'clean_url', 'defer_parsing_of_js', 11, 1 );
此外,如果您不在 WordPress CMS 上,您可以使用脚本标签来实现您想要的。在下面的代码中,将 defer1.js、defer3.js 和 defer3.js 等替换为您要延迟的脚本的链接。
function parseJSAtOnload() {
var links = ["defer1.js", "defer2.js", "defer3.js"],
headElement = document.getElementsByTagName("head")[0],
linkElement, i;
for (i = 0; i < links.length; i++) {
linkElement = document.createElement("script");
linkElement.src = links[i];
headElement.appendChild(linkElement);
}
}
if (window.addEventListener) {
window.addEventListener("load", parseJSAtOnload, false);
}
else if (window.attachEvent) {
window.attachEvent("onload", parseJSAtOnload);
}
else {
window.onload = parseJSAtOnload;
}
推荐阅读
- node.js - 如何正确记录到 nuxt 中的文件?
- python - 我的方法返回一个字典,我希望在方法的参数更改时更新这个字典
- wpf - Show() 窗口等待按钮被按下并且 mainWindow 处于活动状态(WPF)
- javascript - 如何自动将相对导入路径重写为绝对路径?
- javascript - 使用 SINGLE case 或 if else 切换
- autodesk-forge - 授权页面上的应用程序名称在 3-legged auth 中没有更改
- python - 用诗歌管理 git 子模块的依赖关系
- wordpress - 如何将额外的自定义字段添加到 WooCommerce -> 运输方式
- jquery - 每个 div 一次 prepend() 项
- c# - 客户端 Blazor 使用 SendAsync 进行 GetRequest 使用 CORS 进行 API 请求