Как запустить функцию при загрузке страницы?


Я хочу запустить функцию при загрузке страницы, но я не хочу использовать ее в <body> - тег.

у меня есть скрипт, который запускается, если я инициализирую его в <body>, например:

function codeAddress() {
  // code
}
<body onLoad="codeAddress()">

но я хочу запустить его без <body onLoad="codeAddress()"> и я пробовал много чего, например это:

window.onload = codeAddress;

но это не работает.

Итак, как я могу запустить его, когда страница загружена?

6 176

6 ответов:

window.onload = codeAddress; должно работать - вот демо, и полный код:

<!DOCTYPE html>
<html>
    <head>
        <title>Test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script type="text/javascript">
        function codeAddress() {
            alert('ok');
        }
        window.onload = codeAddress;
        </script>
    </head>
    <body>
    
    </body>
</html>

<!DOCTYPE html>
<html>
    <head>
        <title>Test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script type="text/javascript">
        function codeAddress() {
            alert('ok');
        }
        
        </script>
    </head>
    <body onload="codeAddress();">
    
    </body>
</html>

вместо использования jQuery или window.onload, родной JavaScript принял некоторые большие функции с момента выпуска jQuery. Все современные браузеры теперь имеют свою собственную функцию DOM ready без использования библиотеки jQuery.

Я бы рекомендовал это, если вы используете собственный Javascript.

document.addEventListener('DOMContentLoaded', function() {
    alert("Ready!");
}, false);

принимая ответ Дарина, но стиль jQuery. (Я знаю, что пользователь попросил javascript).

под управлением скрипка

$(document).ready ( function(){
   alert('ok');
});​

window.onload = function() { ... так далее. это не очень хороший ответ.

это, скорее всего, будет работать, но это также нарушит любые другие функции, уже подключенные к этому событию. Или, если другая функция подключается к этому событию после вашего, она сломает ваше. Таким образом, вы можете потратить много часов, пытаясь выяснить, почему что-то работает не так.

более надежный ответ!--8-->здесь:

if(window.attachEvent) {
    window.attachEvent('onload', yourFunctionName);
} else {
    if(window.onload) {
        var curronload = window.onload;
        var newonload = function(evt) {
            curronload(evt);
            yourFunctionName(evt);
        };
        window.onload = newonload;
    } else {
        window.onload = yourFunctionName;
    }
}

какой-то код я использую, я забыл, где я его нашел дайте автору кредит.

function my_function() {
    // whatever code I want to run after page load
}
if (window.attachEvent) {window.attachEvent('onload', my_function);}
else if (window.addEventListener) {window.addEventListener('load', my_function, false);}
else {document.addEventListener('load', my_function, false);}

надеюсь, что это помогает :)

альтернативное решение. Я предпочитаю это для краткости и простоты кода.

(function () {
    alert("I am here");
})();

это анонимная функция, где имя не указано. Здесь происходит то, что функция определяется и выполняется вместе. Добавьте это в начало или конец тела, в зависимости от того, должен ли он выполняться перед загрузкой страницы или вскоре после загрузки всех элементов HTML.

посмотри domReady script это позволяет настроить несколько функций для выполнения При загрузке DOM. Это в основном то, что DOM ready делает во многих популярных библиотеках JavaScript, но он легкий и может быть взят и добавлен в начале вашего внешнего файла скрипта.

пример использования

// add reference to domReady script or place 
// contents of script before here

function codeAddress() {

}

domReady(codeAddress);