jQuery获取对调用脚本标记的引用

时间:2012-05-23 07:14:49

标签: javascript jquery html5

我不确定问题的标题是否正确,以及我的问题有多大。

这是一个场景:

// HTML

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

// script.js

$(function () {

  var script = // ???

});

在js代码中,我希望引用原始标记,即初始化“/script.js”加载的标记,这样我就可以检查data-app属性。

这可能吗?

4 个答案:

答案 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,是的)