#javascript #jquery #html
#javascript #jquery #HTML
Вопрос:
У меня есть функция javascript «loadFramework ()», которая изменяет HTML-документ. В частности, он повторно запускает команду jQuery $("#element-id").load("document/name.html")
, которая вводит HTML в document/name.html непосредственно в элемент с #element-id.
Изначально я запускал loadFramework () в скрипте в заголовке документа. Однако с тех пор я понял, что функция завершается сбоем, если страница еще не загружена, поскольку она зависит от наличия элемента с #element-id.
Я не могу понять, как заставить эту функцию запускаться, когда это необходимо. Казалось, простым решением было установить его в качестве функции document.onload:
document.onload = function() {
loadFramework();
}
Но в этом случае, похоже, он вообще никогда не запускается.
Как мне убедиться, что функция заголовка запускается только после загрузки документа?
Комментарии:
1. Смешно, если я Google «jQuery и только тогда, когда документ загружает» первый результат-это справочник , пожалуй, самая распространенная функция в jQuery, которая делает именно то, что вы хотите…
2. попробуйте
console.log("this code runs")
в качестве первой строки кода вloadFramework()
методе. Это поможет вам проверить, выполняется ли этот метод вообще.3. Самое простое (а также наиболее очевидное) решение — поместить ваш скрипт прямо перед
</body>
тегом. Это также считается лучшей практикой для этого.
Ответ №1:
Вам следует использовать window.onload
, если вы ищете ванильный вариант JS
window.onload = function() {
loadFramework();
}
Ответ №2:
Загрузка Jquery принимает дополнительный аргумент «complete». Вы можете запустить javascript там. Таким образом, код будет:
$("#element-id").load("document/name.html", function(){
loadFramework();
});
Вы также можете использовать $(document).готово(функция{loadFramework()}) внутри загружаемого HTML-кода.
Ответ №3:
Если вы хотите выполнить loadFramework()
метод после «document/name.html «загружен, я бы предложил следующий код.
$(function() {
$("#element-id").load("document/name.html", function(){
loadFramework();
});
});