Отсрочить загрузку динамически вставленного скрипта
Здравствуйте. Буду очень рад любой релевантной помощи.
Существует страница примерного вида: <head> <script src="1.js"> <script src="3.js"> <script src="4.js"> </head> Я расширением (но это по сути не так важно) вставляю на страницу скрипт window.addEventListener('DOMContentLoaded', function() { var script = document.createElement('script'); script.src = '2.js'; document.getElementsByTagName('head')[0].appendChild(script); }); По логике приложения мне необходимо, чтобы этот скрипт загрузился вторым, но, насколько я понял, в связи с тем, что я его вставляю динамически, браузер сначала инициализирует его, а уже потом начинает грузить 1.js. Какой есть гениальный и не очень способы это исправить? Как заставить браузер загружать скрипт синхронно после 1.js? Возможно, надо вставлять свой скрипт другим способом, или заставить сначала загрузить 1.js |
Цитата:
<head> <script src="1.js"> <script src="3.js"> <script src="4.js"> </head> Вы контент этих загружаемых скриптов менять можете ? 2. Почему Ваш скрипт не прописать в hider ? 3. Какой тайный смысл загрузки именно после первого ?(что меняется если загрузка после 4 ? |
1. могу менять контент скрипта 2.js
2. прописать не могу. доступа к странице нет. только через расширение динамически вставлять 3. в первом скрипте определение функции, которое используется во втором, например update: "что меняется если загрузка после 4?" — там хитрая система зависимостей. но если получится загрузить после 4го, то возможно сработает. надо проверять |
Цитата:
|
Проверил. Нужно именно после 1го. Дело в том, что изначальная задача была загрузить свой скрипт, вместо того, что на странице:
<script src="1.js"> <script src="2.js"> <script src="3.js"> <script src="4.js"> т.е. загрузку 2.js я заблочил, а вставить ровно на его место свой не могу. 1. теоретически, я думаю, что можно сначала динамически вставить 1.js, а после него загрузить уже свой 2.js. 2. еще как вариант (но я не знаю, как это реализовать), можно попробовать в файле 2.js по таймеру? дождаться загрузки 1.js, а только после этого скормить браузеру его самого. 3. еще одна безумная идея — попробовать вставить как-то не динамически скрипт, но тут я совсем не имею представления, как это делать. Искренне надеюсь на помощь :) |
leosert,
Дайте ссылку на сайт - гляну что можно сделать И укажите, после каких тегов на странице, вы вставляете контент своег динамического |
Deff,
спасибо за отклик. Проблема решилась локально, т.е. относительно контента скриптов. Кстати, расширение грузило скрипт 2.js после domcontentloaded, т.е. самым последним. |
Часовой пояс GMT +3, время: 15:55. |