Javascript文件中的代码可以知道自己的域/ URL

Mat*_*man 19 javascript

如果我有一个站点,example.com和该站点上的页面引用了subdomain.example.com/serveAd.js上的Javascript - 是否有一种方法可以在serveAd.js中知道自己的URL,或者来自哪个下载了?

(JS当然可以知道调用它的页面.我想知道JS是否了解它自己的来源.)

lah*_*her 13

如果您使用的是jquery,那么您可以通过以下方式获取完整的URL:

var fullJsUrl= $('script[src$=serveAd.js]').attr('src');
Run Code Online (Sandbox Code Playgroud)

如果不使用jquery,可能需要更多的工作,但你明白了;)

  • 不确定这是否是由于这个问题以来jquery的变化,但现在这只适用于$('script [src $ ="serveAd.js"]').attr('src'); //引用文件名 (3认同)

gna*_*arf 6

我很确定,因为解析了脚本<script>,DOM中可用的最后一个节点将是正在解析的节点.

在外部JS中试试看:

var scripts = document.getElementsByTagName('script');
var lastScript = scripts[scripts.length - 1];
alert(lastScript.src);
Run Code Online (Sandbox Code Playgroud)

  • 如果脚本文件是使用createElement/appendChild加载的,那么它可能在DOM中的任何位置(取决于您将其附加到的位置). (5认同)