如何区分使用 src 属性包含的动态加载脚本和普通脚本?例如
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script src="static.js" type="text/javascript"></script>
<script type="text/javascript">
document.getElementsByTagName('head')[0].appendChild(document.createElement('script').src = 'dynamic.js');
</script>
</head>
<body>
<script type="text/javascript">
// I want to distinguish dynamic.js and static.js script tags
</script>
</body>
</html>
最佳答案
添加特定的 HTML5 data-*
动态脚本的属性:
var script = document.createElement("script");
script.setAttribute("data-is-dynamic", "true");
script.id = "script1";
script.src = "dynamic.js";
document.getElementsByTagName('head')[0].appendChild(script);
获取 <head>
的选项元素是使用document.head
,尽管它在旧版浏览器中不受支持。这是 MDN 文档 - https://developer.mozilla.org/en-US/docs/DOM/document.head
那么后面为了区分,使用:
var someScript = document.getElementById("script1"); // or any script tag you want to analyze
if (someScript.getAttribute("data-is-dynamic") === "true") {
// is dynamic
} else {
// is static
}
当然,同时你可以在静态脚本标签上设置一个属性,比如data-is-static
,然后以相反的方式检查。
这允许您在脚本标签上有效地设置一个稍后可以检索的“标志”。
关于javascript - 如何区分动态加载的脚本和普通的 src 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15962415/