Я пишу букмарклет javascript. Проблема здесь в том, что она может быть вызвана пользователем до и после того, как какая-либо страница закончила загрузку. Я хочу убедиться, что sript запускается только после завершения загрузки страницы. Как это сделать?Проверьте (из букмарклета), загружена ли страница?
ответ
Один из способов проверки наличия документа - проверить свойство document.readyState. IE, Firefox 3.6+, Webkit и Opera поддерживают его.
if (document.readyState === "complete") {
// do sth
}
Другое дело, если вы хотите дождаться загрузки документа. В этом случае вам необходимо прослушать некоторые события, например DOMContentLoaded на документе, загрузить в окно или readyStateChange на документе.
<body onload="start()">
</body>
При запуске функции DOM гарантированно будет загружен.
Приобретение функции для готовности/загрузки документа гарантирует, что нигде в вашем коде не может быть выполнено до загрузки DOM.
<html>
<body onload="documentLoad()">
<script type="text/javascript">
function documentLoad() {
alert("Document is ready now.");
}
</script>
</body>
</html>
Если вы хотите использовать JQuery, вы можете использовать метод очень короткие руки, чтобы прикрепить весь код к готовому функции.
$(document).ready(function() {
// All code in here - will trigger when DOM is loaded.
}
И вот еще более короткий метод коротких рук, используя jQuery, для достижения того же.
$(function(){
// All code in here - will trigger when DOM is loaded.
});
var firstLoad = true;
$(document).ready(function(){
if (firstLoad){
firstLoad=false;
//your code to run once
}
});
Большинство ответов здесь отвечать, как прикрепить функцию к готовому функции документа, который не является тем, что davidgale просит ...
Объект document
обладает свойством readyState
, который будет установлен на "complete"
, когда он закончит загрузку.
<html>
<body>
<script type="text/javascript">
function someFunction() {
// Called various times throughout page's life.
if(document.readyState == "complete") {
// Perform DOM actions - will only attempt after DOM is loaded.
}
}
</script>
</body>
</html>
- 1. Проверьте, полностью ли загружена веб-страница.
- 2. Проверьте, что страница полностью загружена и отображена
- 3. Проверьте, была ли сборка загружена
- 4. UIWebView, определить, загружена ли страница
- 5. Проверьте, если форма загружена
- 6. Проверьте, загружена ли html 5 shim
- 7. JQuery - если страница загружена
- 8. Проверьте, была ли загружена библиотека Mixpanel
- 9. Спящий режим, проверьте, полностью ли загружена коллекция
- 10. Проверьте, не загружена ли библиотека dll? (Java)
- 11. ZeroClipboard - Проверьте, не загружена ли она
- 12. проверить, загружена ли страница памяти в память
- 13. Как проверить, действительно ли загружена веб-страница?
- 14. Страница не загружена
- 15. Android Webview - как узнать, загружена ли страница из кеша?
- 16. Как узнать, была ли загружена страница из всплывающего окна
- 17. jquery-ui из букмарклета
- 18. CrossPagePostback: исходная страница загружена дважды
- 19. Ionic2 - проверьте, активна ли страница
- 20. Проверьте, не перегрузилась ли страница
- 21. JQuery - проверьте, существует ли страница
- 22. Страница неправильно загружена в selenium
- 23. Как узнать, откуда загружена страница
- 24. Проверьте, загружена ли страница с bfcache, HTTP-кешем или недавно полученным
- 25. определить, какая страница загружена - ajax
- 26. Страница не загружена в chrome
- 27. Jquery прокрутки, когда страница загружена
- 28. Страница загружена с помощью Firefox
- 29. Как узнать, что страница загружена
- 30. нагрузки объявления после страница загружена
До сих пор никто не понял вопрос. ** Он хочет узнать, закончил ли документ еще что-то. ** – SLaks 2010-11-24 18:59:25
Согласен, см. Мой ответ ... – Greg 2010-11-24 19:15:37
lol, u jerk, спасибо за нисходящий vode ... документ готов, выясняет, когда документ готовая загрузка ... что еще вы думаете, что это делает ... сделать чай? – CrazyDart 2010-11-24 19:16:46