如何引用加载当前运行的javascript的脚本元素?
这是情况.我在页面中加载了一个"主"脚本,首先是在HEAD标记下.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type="text/javascript" src="scripts.js"></script>
Run Code Online (Sandbox Code Playgroud)
"scripts.js"中有一个脚本,它需要能够按需加载其他脚本.普通方法对我来说并不适用,因为我需要添加新脚本而不引用HEAD标记,因为HEAD元素还没有完成渲染:
document.getElementsByTagName('head')[0].appendChild(v);
Run Code Online (Sandbox Code Playgroud)
我想要做的是引用加载当前脚本的脚本元素,以便然后我可以将新的动态加载的脚本标记添加到DOM之后.
<script type="text/javascript" src="scripts.js"></script>
loaded by scripts.js--><script type="text/javascript" src="new_script1.js"></script>
loaded by scripts.js --><script type="text/javascript" src="new_script2.js"></script>
Run Code Online (Sandbox Code Playgroud) 我很确定答案是否定的,但我想我还是会问.
如果我的站点引用了一个名为"whatever.js"的脚本,是否可以从该脚本中获取"whatever.js"?喜欢:
var scriptName = ???
if (typeof jQuery !== "function") {
throw new Error(
"jQuery's script needs to be loaded before " +
scriptName + ". Check the <script> tag order.");
}
Run Code Online (Sandbox Code Playgroud)
可能比依赖检查更值得麻烦,但是到底是怎么回事.
是否有一种简单可靠的方法来确定当前正在执行的JavaScript文件的URL(在网页内)?
我唯一想到的是扫描DOM src以查找所有脚本属性以查找当前文件的引用方式,然后通过应用它来计算绝对URL document.location.任何人都有其他想法,是否有一些我完全忽略的超级简单方法?
更新:通过DOM访问的脚本元素已经具有src包含完整URL 的属性.我不知道它是多么普遍/标准,但是你可以使用getAttribute("src")哪个将返回[X] HTML中的任何原始属性值.