0

我不确定问题的标题是否正确,以及我的问题在多大程度上是有效的。

这是场景:

// HTML

<script src="/script.js" data-app="app.js" />

// 脚本.js

$(function () {

  var script = // ???

});

在 js 代码中,我想获取对原始标签的引用,即在“/script.js”上初始化加载的那个,所以我可以检查data-app属性。

那可能吗?

4

4 回答 4

3

您可以枚举脚本document.scripts并通过其src属性识别您的脚本。

于 2012-05-23T07:19:27.037 回答
3
$('script').last().data('app');

请注意,这可能不在DOM 就绪块中。唯一可以访问当前脚本标签的地方是它第一次执行的时候。诸如 DOM 就绪事件之类的异步回调不符合此条件。您可以简单地将值存储在变量中,然后从事件内部使用它:

(function() {
    var app = $('script').last().data('app');
    $(document).ready(function() {
        // do stuff
    });
})();
于 2012-05-23T07:20:02.700 回答
1

我认为没有“正确”的方式来获取您的标签。但是,理论上,当您的脚本运行时,相应的标签应该是最后插入到文档中的标签。因此,将这样的代码投入script.js工作:

var child = document;
while (child && child.localName != "script")
  child = child.lastChild;

if (child)
  alert("My script tag: " + child);

您需要在脚本加载时运行此代码,如果在初始加载后需要它,请记住脚本标签。

于 2012-05-23T07:22:06.277 回答
1
document.scripts[document.scripts.length-1].src

我不知道什么浏览器支持它(IE和chrome,是的)

于 2012-05-23T07:31:52.500 回答