我不确定问题的标题是否正确,以及我的问题在多大程度上是有效的。
这是场景:
// HTML
<script src="/script.js" data-app="app.js" />
// 脚本.js
$(function () {
var script = // ???
});
在 js 代码中,我想获取对原始标签的引用,即在“/script.js”上初始化加载的那个,所以我可以检查data-app
属性。
那可能吗?
我不确定问题的标题是否正确,以及我的问题在多大程度上是有效的。
这是场景:
// HTML
<script src="/script.js" data-app="app.js" />
// 脚本.js
$(function () {
var script = // ???
});
在 js 代码中,我想获取对原始标签的引用,即在“/script.js”上初始化加载的那个,所以我可以检查data-app
属性。
那可能吗?
您可以枚举脚本document.scripts
并通过其src
属性识别您的脚本。
$('script').last().data('app');
请注意,这可能不在DOM 就绪块中。唯一可以访问当前脚本标签的地方是它第一次执行的时候。诸如 DOM 就绪事件之类的异步回调不符合此条件。您可以简单地将值存储在变量中,然后从事件内部使用它:
(function() {
var app = $('script').last().data('app');
$(document).ready(function() {
// do stuff
});
})();
我认为没有“正确”的方式来获取您的标签。但是,理论上,当您的脚本运行时,相应的标签应该是最后插入到文档中的标签。因此,将这样的代码投入script.js
工作:
var child = document;
while (child && child.localName != "script")
child = child.lastChild;
if (child)
alert("My script tag: " + child);
您需要在脚本加载时运行此代码,如果在初始加载后需要它,请记住脚本标签。
document.scripts[document.scripts.length-1].src
我不知道什么浏览器支持它(IE和chrome,是的)