Javascript 辅助构造函数是否接受相对URL?
我想知道来自的Javascript 辅助构造函数是否接受相对URL?,javascript,multithreading,web-worker,Javascript,Multithreading,Web Worker,我想知道来自的工作者构造函数是否接受相对路径。例如,具有如下文件结构: root/ +---js/ | +--workers/ | | +--some-worker.js | +--index.js +---index.html var someWorker = new Worker("./workers/some-worker.js"); 如果index.html加载index.js并且index.js执行如下操作: root/ +---js/ | +--workers/
工作者构造函数是否接受相对路径。例如,具有如下文件结构:
root/
+---js/
| +--workers/
| | +--some-worker.js
| +--index.js
+---index.html
var someWorker = new Worker("./workers/some-worker.js");
如果index.html
加载index.js
并且index.js
执行如下操作:
root/
+---js/
| +--workers/
| | +--some-worker.js
| +--index.js
+---index.html
var someWorker = new Worker("./workers/some-worker.js");
这行吗?没有。奇怪的是,它将url解析为/workers/some worker.js
这个问题有解决办法吗?我希望加载/js/workers/some worker.js
如何创建新的Worker(“workers/some Worker.js”)
以解析到相对目录(在本例中为/js/workers/some Worker.js
,因为它是从/js/
调用的)?不能使用相对URL进行此操作。另一件事是,它接受相对于域的相对URL。因此,要么:
- 绝对URL
- 域的相对URL
只有这些。有关更多信息,请参阅
此外,您还可以通过获取当前位置来设置URL。因此,您可以这样做:
var someWorker = new Worker(location.href + "/workers/some-worker.js");
或者准确地说,您可以这样做:
currentPath = location.href.split("#");
if (currentPath.length > 1)
currentPath = currentPath[0];
currentPath = location.href.split("?");
if (currentPath.length > 1)
currentPath = currentPath[0];
var someWorker = new Worker(currentPath + "/workers/some-worker.js");
希望这有帮助<代码>:)
不。它必须是来自域的绝对相对URL@PraveenKumar然后,解决方法是获取脚本url并创建绝对Worker
url。我同意,但是location.href
将返回页面url,而不是脚本url。