Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите с document.write (https://javascript.ru/forum/misc/79316-pomogite-s-document-write.html)

Artur_Hopf 23.01.2020 10:26

Помогите с document.write
 
Добрый день. Из за плохой wi-fi связи появилась необходимость грузить css и js файлы напрямую клиенту через requireResource

Воспользовался этой статьей:
https://habr.com/ru/post/354630/

у него там есть такие строки:
if (type == "js") {
	document.write('<script id="' + name + '" src="', url, '"><\/script>\n');
  } else if (type == "css") {
	document.write('<link id="' + name + '" rel="stylesheet" href="', url, '" />\n');
  }
var s = document.getElementById(name);


Конкретно проблемы с document.getElementById(name), часто бывает что он null
s = null;

и дальше код своих функции не выполняет. Пробовал ставить setTimepout , но так уже не срабатывает
if (s.readyState == "loaded" || s.readyState == "complete")


Подскажите как после вставки document.write можно было всегда прочитать его как document.getElementById ?:-? ;

ksa 23.01.2020 10:32

Цитата:

Сообщение от Artur_Hopf
Пробовал ставить setTimepout , но так уже не срабатывает

Такого метода нет... :no:

ksa 23.01.2020 10:36

Цитата:

Сообщение от Artur_Hopf
Подскажите как после вставки document.write можно было всегда прочитать его как document.getElementById ?

Как вариант, вместо
document.write();

Использовать методы
document.createElement();

http://www.fpublisher.ru/documentati...hcreateelement
и
узел.appendChild(newChild);

http://www.fpublisher.ru/documentati...s#happendchild
Тогда можно будет избежать многих проблем... ;)

Malleys 23.01.2020 14:17

ksa, откуда вы откапываете такие древние статьи, где упоминается ActiveXObject как нечто должное... Это некий культ IE6?

Цитата:

Сообщение от Artur_Hopf
Воспользовался этой статьей:
https://habr.com/ru/post/354630/

Artur_Hopf, это очень плохая идея! Хотя бы потому, что придётся все запросы делать нетрадиционным образом. Очень грязный и неочевидный код. Например, вы не сможете таким образом обработать <img src="pic.jpg">. Картинка будет скачиваться/не скачиваться минуя скрипт. Используйте для этого Cache в ServiceWorker и управляйте всеми запросами из вашего приложения в одном месте! Читайте тут и тут и тут.

ksa 24.01.2020 07:22

Цитата:

Сообщение от Malleys
Это некий культ IE6?

Отнюдь. :D
Просто по работе собирал ссылки на полезные ресурсы... Сейчас вот раздаю. Если у тебя есть новее и на русском - давай, я обновлю свое старье.


Часовой пояс GMT +3, время: 03:21.