0

Пытаюсь написать скрипт, который будет загружать и подключать на страницу скрипт с удаленного сервера, а при недоступности сервера, загружать скрипт локально. В чём может быть проблема? (использовать document.write... не хочется)

  let fileRef = document.createElement('script');
  const removeItem = () => {
    fileRef.remove();
    fileRef = document.createElement('script');
    fileRef.type = 'text/javascript';
    fileRef.src = cb;
    document.getElementsByTagName('head')[0].appendChild(fileRef);
  };
  fileRef.type = 'text/javascript';
  fileRef.src = file;
  fileRef.setAttribute('onerror', removeItem());
  document.getElementsByTagName('head')[0].appendChild(fileRef);
};

loadFile('//cd1njs.cloudflare.com/ajax/libs/picturefill/3.0.3/picturefill.min.js', 'js/picturefill.min.js');
//ошибка в url удаленного скрипта допущена намеренно
  • Ошибка вот здесь fileRef.setAttribute('onerror', removeItem());, а именно в строчке removeItem(). https://ru.stackoverflow.com/questions/719926/%d0%9a%d0%b0%d0%ba-%d0%ba%d1%83%d0%b4%d0%b0-%d0%bd%d0%b8%d0%b1%d1%83%d0%b4%d1%8c-%d0%bf%d0%b5%d1%80%d0%b5%d0%b4%d0%b0%d1%82%d1%8c-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d1%8e-%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%81%d0%be%d0%b1%d1%8b%d1%82%d0%b8%d0%b5-%d0%b2%d1%8b%d0%b7%d1%8b%d0%b2%d0%b0%d0%b5%d1%82%d1%81%d1%8f-%d1%81%d1%80%d0%b0%d0%b7%d1%83-%d0%b6%d0%b5 – Stepan Kasyanenko Oct 11 '19 at 04:17
  • @StepanKasyanenko Спасибо, кажется, что заработало. Правда пришлось заменить setAttribute на fileRef.onerror = removeItem; – frankytix Oct 11 '19 at 16:56

0 Answers0