是否可以在运行时确定?
external.js的内容:
function x() {
//can i get the path/name of the html file that included this js file?
//which is test.html
}
test.html的内容
script src =“external.js”
答案 0 :(得分:4)
“包含此js文件的HTML文件”很简单,它只是当前文档的地址。 location.href
。
如果您想获取URL的特定部分,例如。路径名的最后一部分:
var filename= location.pathname.split('/').pop();
调用函数的HTML页面是一个稍微不同的命题,因为在跨文档脚本的世界中,您可以将函数从一个窗口传递到另一个窗口,因此从一个窗口调用该函数与其定义的地方不同。
没有简单或可靠的方法可以检测到你被称为的地方,但这种情况通常并不常见。一般来说,最好避免跨文档函数调用,因为有许多令人讨厌的陷阱。 window.postMessage
应该在将来减少对此的需求。