Точнее в <head> указано:
<script async="async" src="jquery.js"></script>
<script async="async" src="myscript.js"></script>
myscript.js:
var myFunc = function() {...}
$(myFunc); // Может вызвать ошибку если myscript.js загрузится раньше чем jquery.js.
Вносить изменения в html я не могу, редактировать можно только myscript.js.
Может jQuery проверяет специальный массив в window и исполняет все его функции? Или еще какая лазейка есть?
Примечание:
To Denis_ (Denis Biryukov):
Какой вы наивный.
1. А $(document) не вызовет ошибку до подгрузки jquery.
2. // тут делаем то, что хотим - И что мне делать если jQuery не загружена?
Пока решил так:
if(window["jQuery"]) {
myFunc();
} else {
if(window["attachEvent"]) {
window["attachEvent"]("onload", myFunc);
} else {
window["addEventListener"]("load", myFunc);
}
}
Но это не очень красиво.
Примечание:
To Denis_ (Denis Biryukov):
Вы не поняли проблему. Я хочу выполнить функцию myFunc после загрузки jQuery, но, возможно, до загрузки всех подключаемых элементов страницы. Проблема именно в том, что благодаря аттрибутам sync="sync" скрипт myscript.js часто загружается и проходит интерпритацию раньше чем jquery.js. Обычно это решается опусканием скриптов в самый низ html документа и отключением у них аттрибута async, но в данном случае редактировать html нельзя.
А вообще мне становится ясно, что хороших решения этой проблемы нет, только грязные хаки.
Примечание:
* ...что благодаря аттрибутам async="async"
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.