Есть ли способ создать SharedWorker, который загружает источник с другого сайта? - PullRequest
1 голос
/ 13 июня 2011

Скажите, что мой html-файл имеет значение http://foo.com/index.html,, в нем есть тег <script> до http://bar.com/bar.js. В bar.js я хочу запустить SharedWorker, где URL-адрес равен http://bar.com/worker.js. Есть ли способ достичь этого (может быть, что-то вроде jsonp)?

Ответы [ 2 ]

0 голосов
/ 14 июня 2011

Это решение, которое я нашел:

  • Написать скрипт внутри функции (может быть внутренней функцией)
  • получить текст с помощью функции.toString () (удаление объявления функции и закрывающая скобка)
  • добавить текст в BlobBuilder и получить BLOB-объект
  • Используйте window.URL.createObjectURL, чтобы преобразовать BLOB-объект в URL-адрес
  • используйте этот URL для работника
0 голосов
/ 13 июня 2011

В наши дни предпочтительным способом такого рода междоменного доступа является использование спецификации W3 CORS.

Распределение ресурсов между источниками

Однако этоможет не подойти вам, если вы не контролируете сайт на bar.com.Если вы это сделаете, то CORS, безусловно, является хорошим вариантом, но вам, возможно, придется прибегнуть к JSONP, если bar.com управляется другой стороной, поскольку CORS зависит от сайта, отсылающего назад определенные заголовки, разрешающие вашему браузеру загружать запрошенный вами ресурс.

...