Подтвердить что ты не робот

Javascript не разрешает рабочий путь относительно текущего script

У меня есть script at http://localhost/js/foo.js, которому нужно вызвать Web Worker из файла http://localhost/js/fooWorker.js. Я предположил, что могу просто сделать что-то вроде этого:

var worker = new Worker('fooWorker.js')

Однако это приводит к ошибке 404, поскольку браузер не может найти http://localhost/fooWorker.js. У меня создалось впечатление, что рабочие пути были разрешены относительно script, порождающего рабочего, поэтому не следует ли мне просто указывать имя другого .js файла в том же каталоге, не указывая абсолютный путь? Я что-то делаю неправильно?

4b9b3361

Ответ 1

Из http://www.w3.org/TR/workers/:

Когда вызывается конструктор WorkStar (scriptURL), пользовательский агент должен выполните следующие шаги:

  • Разрешите аргумент scriptURL относительно базы << → script URL, когда метод вызывается.

Ответ 2

Собственно, это должно быть относительно пути вложенного документа

Например,

У меня

pathDoc\docA.html
js\b.js
js\worker\c.js

тогда код должен быть

var worker = new Worker('..\js\worker\c.js')