@Hailgrim

Как исправить importScripts is not defined?

Здравствуйте. Возникла потребность подключить к сайту сервис рассылки push-уведомлений. В js-файле, предоставляемом сервисом для работы функционала, была всего одна строка: "importScripts('https://ссылка-на-их-сервис/файл.js')". После подключения в консоли браузера стала появляться ошибка "importScripts is not defined". Погуглил, попробовал подключить так, как писали в советах. Но не помогло. Иногда ошибка пропадала, но сам функционал не работал (должно появляться окно с просьбой разрешить уведомления).

Что я пробовал:
1.
var worker = new Worker('https://push.esputnik.com/service-worker.js');
worker.postMessage("test");

Никакой реакции.

2.
if( 'function' === typeof importScripts) {
   importScripts('https://push.esputnik.com/service-worker.js');
   addEventListener('message', onMessage);
   function onMessage(e) { 
     // do some work here 
     console.log('work');
   }    
}

Условие не сработало.

3.
if ( 'undefined' === typeof window) {
	console.log('work');
	importScripts('https://push.esputnik.com/service-worker.js');
}

Условие не сработало.

4. Просто ради эксперимента...
if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('https://push.esputnik.com/service-worker.js').then(function(reg) {
    // регистрация сработала
    console.log('Registration succeeded. Scope is ' + reg.scope);
  }).catch(function(error) {
    // регистрация прошла неудачно
    console.log('Registration failed with ' + error);
  });
};

Регистрация прошла неудачно... Выдало ошибку, связанную с безопасностью.
  • Вопрос задан
  • 2325 просмотров
Пригласить эксперта
Ответы на вопрос 1
@challenger1401
Uncaught DOMException: Failed to construct 'Worker': Script at 'https://push.esputnik.com/service-worker.js' cannot be accessed from origin 'https://toster.ru'.
at :1:14 - вот что консоль хрома говорит.

локально файл не пробовали сохранять?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы