Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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 辅助构造函数是否接受相对URL?_Javascript_Multithreading_Web Worker - Fatal编程技术网

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。