- jQuery onload — .load () — событие не работает с динамически загружаемым iframe
- 4 ответа
- Окно событий JavaScript.события onload не срабатывает
- 7 ответов
- jQuery onload function
- 4 Answers 4
- Not the answer you’re looking for? Browse other questions tagged jquery or ask your own question.
- Linked
- Related
- Hot Network Questions
- Subscribe to RSS
- Почему document.onload не выполняется?
- javascript — window.onload не запускается
- Это отлично работает
- 3 ответа
jQuery onload — .load () — событие не работает с динамически загружаемым iframe
Мой скрипт загружает iframe, когда пользователь нажимает кнопку. Я хочу вызвать другую функцию после загрузки iframe, но она не работает. Iframe загружается нормально, но событие .load () никогда не вызывается после завершения загрузки iframe. Iframe содержит контент с того же сайта (без внешнего контента). Странно то, что я использую ту же технику, описанную ниже, в нескольких других местах моего кода, и она отлично работает. Кто-нибудь может подсказать, что мне следует проверить дальше?
Вот соответствующий код:
4 ответа
Кажется, что-то похожее на вопрос здесь:
Таким образом, элемент Iframe существует в Dom с добавлением. Только когда вы установите URL-адрес, он будет загружаться, и к этому моменту вы добавили функцию загрузки, которую хотите пометить в конце. Так что для вашего кода
Причина, по которой ваш пример кода не работает, заключается в том, что вы привязываетесь к несуществующему элементу, а затем помещаете этот элемент в DOM, когда к событию load не подключен обработчик события. Попробуй это:
Или ближе к исходному коду, вы можете заменить .load() на .live(‘load’) :
Просто добавили цепочку, создали элемент, куда обычно попадает селектор (это возможно), и добавили его в тело.
Если документ, который вы загружаете в iframe, находится под вашим контролем, попробуйте добавить обработчик загрузки в этот документ. Если вам нужно, чтобы родительский документ что-то сделал после загрузки iframe, вы можете вызвать функцию в родительском элементе из дочернего:
Источник
Окно событий JavaScript.события onload не срабатывает
у меня есть следующий код в веб-сайт:
на onresize и onload событие никогда не срабатывает. Я попробовал его в Firefox и Chrome, и ни один из них не работает.
Спасибо за вашу помощь и пойти на репутации! ; D
7 ответов
Я думаю, что, вероятно, здесь происходит то, что ваш window.onload переопределяется позже, проверьте, чтобы убедиться, что это не через такие вещи, как
вы можете проверить это путем alert(window.onload) в вашей функции re-size, чтобы увидеть, что на самом деле прикреплено там.
У меня это произошло, когда я добавил сторонний код jQuery, который нам нужен для партнера. Я мог бы легко переделать свое старомодное окно.onload к документу jQuery готов. Тем не менее, я хотел знать, есть ли современное решение, совместимое с кросс-браузером.
знайте, что я знаю это, я могу преобразовать свой код для использования маршрута jQuery. И я попрошу нашего партнера переработать их код, чтобы они перестали влиять на сайты.
переместить окно.загрузите строку в конец файла javascript или после начальной функции, и она будет работать:
но это лучшая практика, если вы не замените onload тоже. Вместо этого прикрепите свою функцию к событию onload:
что работал для меня, и извините за мой английский.
это работает для меня, я думаю, что ваша проблема в другом месте:
вы можете проверить это самостоятельно здесь: http://jsfiddle.net/Dzpeg/2/
вы уверены, что это единственное событие, называемое onLoad ? Возможно, другое событие onLoad создает конфликт
Это будет работать при вызове окна».onload » рядом с функцией resize()
для меня window.onload не работал, когда писал внутри script type=»text/javascript тег.
вместо этого, необходимо написать то же самое в script language=»Javascript» type=»text/javascript tag и он работал нормально.
Если это действительно в таком порядке, это определенно не сработает. Нельзя назначить функцию обработчику событий до объявления самой функции.
Источник
jQuery onload function
I m using the following script to call a onload function but it does not works in IE
4 Answers 4
If you are using jQuery you could use the ready() function like so:
or even more simply, just pass the method to jQuery:
That will fire as soon as the DOM is available to manipulate, sometimes earlier than onload .
You cannot set onload event handlers on anything other than the window. (Well, you can, but it will have no effect.) If you want calFact to run at the onload event, you should use $(window).load(calFact); . But generally it is more useful to call things at the DOMready event: $(document).ready(calFact); or just $(calFact); for short. The difference is that onload happens when everything loaded (including images, which are slow to load), and DOMready happens when the DOM tree is loaded (but images not necessarily yet).
Also, there is not much point in assigning an id of body to the body when there is only one of it anyway; you can just use $(‘body’) .
You’ll probably want to do this instead:
You should use ready()
Not the answer you’re looking for? Browse other questions tagged jquery or ask your own question.
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.10.15.40479
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Источник
Почему document.onload не выполняется?
Если посмотреть на обьект window и на обьект document через консоль можно увидить что у них есть событие onload, решил попробовать их в действии.
html
консоль
после того как видно результат в консоли у меня возникают такие вопросы:
1. Почему если в первой строчке в обьекте документа в теге body есть дочерний div, то во второй строчке возвращаеться null?? я ожидал что в первой строчке не будет дочернего div и во второй будет null, но почему то обьект document вывело c дочерним div, почему.
2. разница в window.onload и document.onload я полагаю в том что, window.onload — выполняется когда простроен dom и загружены все нужные ресурсы, а document.onload — только после построяки dom, если у меня на второй строчке не был найден div, то именно в тот момент dom не был построен, значит событие должно было сработать позже, почему не сработало.
- Вопрос задан более трёх лет назад
- 4650 просмотров
document.onload срабатывает когда DOM загружен.
window.onload срабатывает когда DOM, картинки и стили загружены. Типа. Потому что есть разница в браузерах.
Если хотите выполнить скрипт после загрузки всего контента лучше использовать DOMContentLoaded
Источник
javascript — window.onload не запускается
То, что я пытаюсь сделать, это инструмент, в котором он будет экспортировать файл PDF.
Есть два случая:
- Мне не нужно ничего проверять, и сразу после того, как пользователь нажимает кнопку экспорта, он открывает новое пустое окно, потому что я использую заголовки для загрузки файла, а после завершения загрузки пустой страницы он закрывается.
Сценарий для случая 1
Это отлично работает
- Я должен проверить, есть ли доступный файл PDF для записи. перед открытием нового пустого окна, чтобы получить файл, а затем закрыть его, как в случае1
Сценарий для случая 2:
Теперь это не работает. На самом деле моя первая проблема заключалась в том, что он не делал новое окно, потому что оно рассматривает его как всплывающее окно, но я исправил это после часа исследований. Теперь закрытие окна — моя проблема.
Я уже искал это и все еще в настоящее время ищу не только здесь, но, к сожалению, я не смог найти ответ по этой проблеме. Любая помощь приветствуется.
Обновление . Для меня сработало использование XMLHttpRequest, чтобы мне не нужно было открывать новую пустую вкладку, чтобы мои php-заголовки служили мне файлом PDF.
Вот код, который я использую:
URL-адрес, который я использовал, был обработан контроллером, который дает мне pdf-файл с использованием заголовков php.
3 ответа
Блокировщики всплывающих окон обычно не допускают всплывающие окна (или программный щелчок по динамически создаваемым гиперссылкам и т. Д.), Если window.open() не вызывается прямым действием пользователя. Каждый браузер имеет немного другой механизм блокировки всплывающих окон.
В вашем случае 1 сначала весь код запускается в основном потоке в результате нажатия пользователем кнопки экспорта. Это отлично работает.
В случае 2 открытие окна может работать не во всех браузерах, поскольку оно вызывается из другого потока. Обработчик успеха Ajax будет вызываться асинхронно еще долго после завершения события onclick.
Чтобы исправить это, вы можете использовать синхронные запросы для выполнения всего кода в основном потоке. Вы можете XMLHttpRequest или опция асинхронности $.ajax(
Реализация приведенных выше предложений может помочь решить вашу проблему, поскольку window.onload() не запускается, но есть еще одно улучшение, которое можно внести — добавление обработчика onload перед навигацией:
Или даже лучше добавить его в основной теме, сразу после
Рассмотрите возможность использования iframe для этого. Это совершенно правильное решение, которое исключает необходимость прослушивания другого события окна, что является плохой практикой и не требуется.
Источник