如何引用加载当前运行的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) 可能重复:
我如何引用加载当前正在执行的脚本的脚本标记?
有没有办法选择script包含特定脚本的元素而不给它任何类型的已知属性?
此示例将警告窗口对象,因为它在全局上下文中被调用:
<script>
alert(this);
</script>
Run Code Online (Sandbox Code Playgroud)
这个例子不会起作用,因为脚本的名称可能会改变(为方便起见,我假设包含了jQuery):
<script type="text/javascript" src="/foo/bar/baz.js"></script>
//baz.js
$('[src^="baz.js"]');
Run Code Online (Sandbox Code Playgroud)
此示例是次优的,因为它依赖于id属性:
<script type="text/javascript" id="foo">
$('#foo');
</script>
Run Code Online (Sandbox Code Playgroud)