2017-06-24 35 views
-1

我試圖在用戶登陸頁面後立即運行一個函數。我有以下頭部分:爲什麼我的函數不能在頁面加載中工作?

<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 

    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 

    <link rel="stylesheet" type="text/css" href="Resources/css/normalize.css"> 
    <link rel="stylesheet" type="text/css" href="Resources/css/ionicons.min.css"> 
    <link rel="stylesheet" type="text/css" href="Resources/css/animate.css"> 
    <link rel="stylesheet" type="text/css" href="Resources/css/style.css"> 
    <link rel="stylesheet" href="https://www.w3schools.com/lib/w3.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 

    <script type="text/javascript"> 
     function sayOK() { 
      alert('ok'); 
     } 
     window.onload = sayOK; 
    </script> 

</head> 

爲什麼不說OK()運行?

回答

0

您的示例代碼在測試中運行良好。您可以嘗試將腳本移動到頁腳,就在您的關閉主體標記之前。

jQuery提供了一個很好的onload機制,如果你想跨瀏覽器的可靠性,那將是我開始的地方。不要重新發明輪子。

https://learn.jquery.com/using-jquery-core/document-ready/

+0

爲什麼反對票?他已經在他的示例中加載jQuery,所以沒有理由不使用它。創建自定義函數來處理onload是多餘的,因爲他已經可以訪問一個並且使得維護更加艱難。 – illmortem

+0

這工作。我在正文關閉之前移動腳本。 –

+0

真棒,很高興它幫助 - 通常最簡單的答案是最好的:) – illmortem

-1

它的工作原理。嘗試嘗試創建一個單獨的文件,例如ok.html,然後在任何瀏覽器中打開它。它應該顯示消息。

0

這是運行你的代碼的可移植的方式,只要在頁面加載:

function documentReady (cb) { 
    if (document.readyState !== 'loading') { 
    cb(); 
    } else { 
    document.addEventListener('DOMContentLoaded', cb); 
    } 
} 

documentReady(function() { 
    // YOUR CODE GOES HERE 
}); 
相關問題