Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery获取对调用脚本标记的引用_Javascript_Jquery_Html - Fatal编程技术网

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

Javascript jQuery获取对调用脚本标记的引用,javascript,jquery,html,Javascript,Jquery,Html,我不确定问题的标题是否正确,以及我的问题有多少是有效的 下面是一个场景: //HTML <script src="/script.js" data-app="app.js" /> 在js代码中,我希望获得对原始标记的引用,该标记初始化了/script.js上的加载,因此我能够检查data-app属性 这可能吗?您可以枚举document.scripts中的脚本,并使用其src属性识别您的脚本 请注意,这可能不在DOM就绪块中。您可以访问当前脚本标记的唯一位置是它第一次执行时。异步回

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

下面是一个场景:

//HTML

<script src="/script.js" data-app="app.js" />
在js代码中,我希望获得对原始标记的引用,该标记初始化了/script.js上的加载,因此我能够检查data-app属性


这可能吗?

您可以枚举document.scripts中的脚本,并使用其src属性识别您的脚本

请注意,这可能不在DOM就绪块中。您可以访问当前脚本标记的唯一位置是它第一次执行时。异步回调(如DOM就绪事件)不符合此条件。您只需将值存储在变量中,然后从事件内部使用它:

(function() {
    var app = $('script').last().data('app');
    $(document).ready(function() {
        // do stuff
    });
})();

我认为没有一个合适的方法来得到你的标签。但是,理论上,当脚本运行时,相应的标记应该是最后一个插入到文档中的标记。因此,将这样的代码放入script.js中是可行的:

var child=文档; 而child&&child.localName!=剧本 child=child.lastChild; 如果孩子 alertMy脚本标记:+child; 您需要在脚本加载时运行此代码,如果在初始加载后需要,请记住脚本标记

document.scripts[document.scripts.length-1].src

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

chrome和IE上可能有一个document.scripts属性的副本很长一段时间以来,我不知道它的标准是不是我不这么认为,什么浏览器支持它,但是,如果它是为了调试目的,并且您可以控制浏览器版本,那么使用它而不是下面的建议$。。。jquery stuffWhy not getElementsByTagName'script'?@ThiefMaster:Performance-如果可以直接转到文档中的最后一个元素,为什么要枚举一个可能非常大的文档中的所有脚本。我认为所有浏览器都支持document.scripts-但它是一个向后兼容属性,在现代浏览器中,它与document.getElementsByTagNamescript完全相同。最后一个将遍历DOM。。但我认为同样的结果
(function() {
    var app = $('script').last().data('app');
    $(document).ready(function() {
        // do stuff
    });
})();
document.scripts[document.scripts.length-1].src