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