Javascript 获取当前JS web组件的路径

Javascript 获取当前JS web组件的路径,javascript,relative-path,web-component,Javascript,Relative Path,Web Component,我有一个JS web组件需要加载到其他资源中(特别是添加到DOM中的iframe的src,但这对于任何具有相对路径的资源来说都是一个问题) 需要相对于调用页面指定此资源,我可以从window.location轻松地获得该页面 然而,它需要指向src的文件是相对于正在执行的JS文件的,因为这是一个组件,所以我不能确定它将在哪里 因此: example.com/index.html |__>{未知路径}/web-component.js |__>{unknown path}/resource.htm

我有一个JS web组件需要加载到其他资源中(特别是添加到DOM中的
iframe
src
,但这对于任何具有相对路径的资源来说都是一个问题)

需要相对于调用页面指定此资源,我可以从
window.location
轻松地获得该页面

然而,它需要指向
src
的文件是相对于正在执行的JS文件的,因为这是一个组件,所以我不能确定它将在哪里

因此:

example.com/index.html
|__>{未知路径}/web-component.js

|__>{unknown path}/resource.html我有一个潜在的解决方案,但它同时存在潜在的浏览器兼容性和性能问题

其思想是
newerror()。堆栈
包括执行的文件的路径

所以


它依赖于堆栈的格式、堆栈的内容和
newerror()
在加载时不会导致任何性能问题,因此欢迎使用更好的方法回答

这个答案可能有帮助:@admcfajn干杯,但这适用于node.js,我在一个web环境中。我可以使用node.js服务器端来编辑文件,使其具有硬编码的路径,但这实际上是最后的手段。是的,我不认为这种情况下有一种一刀切的方法。下面是个好主意。这一个可能也有帮助:您在web环境中,但您正在使用node进行预编译,对吗?@admcfajn不是我自己-此项目是一个web组件,我使用TS,但我希望输出在没有复杂构建链的情况下可用(来源:)
example.com/index.html 
  |__> {unknown path}/web-component.js
  |__> {unknown path}/resource.html <-- I want to get this
// Get stack string
const stack = new Error().stack.split('at');

// Get the last entry
const scriptPath = stack[stack.length - 1].trim();

// The component will share the path up to the last slash
const componentPath = scriptPath.substring(0, scriptPath.lastIndexOf('/'));