Я столкнулся с аналогичной проблемой с this guy, за исключением того, что моя проблема связана со сценариями, а не с изображениями.
Я использую комбинацию $.getScript()
и $(window).load()
для динамического загрузки JavaScript и использования функций, которые загружаются после полной загрузки сценария.
Это хорошо работает в Chrome, но Safari, похоже, всегда запускает событие onload
слишком рано. Мне было интересно, есть ли способ заставить Safari ждать, пока все сценарии загрузятся аналогично блоку document.body.offsetWidth
. Из того, что я понял (и из результатов, которые я видел, когда я его тестировал), document.body.offsetWidth
блокируется до тех пор, пока не будут загружены стили и изображения, но, по-видимому, не скрипты.
Редактировать: Возможно, стоит отметить, что он делает иногда работает в Safari, но я не вижу шаблона. Иногда событие запускается до того, как скрипт полностью загружен и выполнен, и обработчик прошел $(window).load()
сбой, потому что функции отсутствуют.
Почему вы не можете использовать обработчик 'success' для' $ .getScript() '? Это будет работать после завершения загрузки сценария. –
Я думаю, что реальный вопрос заключается в том, почему вы динамически загружаете требуемые сценарии. –
@Kevin Peno: Мне нужно загрузить остальные сценарии, а не только один скрипт. Загружается несколько скриптов. Они все разделены на собственный сценарий в зависимости от их функциональности. – alexcoco