簡體   English   中英

頁面加載后執行Javascript

[英]Executing Javascript after page has loaded

我是JavaScript的新手,在發生事件時會發現一個小問題。 情況就是這樣。 我正在編寫一個ASP.Net應用程序。 在我的代碼后面,在Page_Load()中我有一些代碼。 我需要先執行此代碼。 在此代碼執行完畢后,我需要執行JavaScript。

是否存在確保代碼按該順序執行的事件或事物?

最簡單的方法是將函數調用添加到body的onload事件中

<body onload="yourFunction()">

function yourFunction() {
}

或者,您也可以在身體的最末端放置一些腳本。 此處的任何腳本都將在處理正文后執行。 你將能夠做到這樣的事情

var divElement = document.getElementById("divId");

沒有它作為null返回。

編輯

我沒有在你的問題上看到jQuery標記,但是,如果你碰巧使用它,你也可以這樣做:

$(document).ready(function() {
    //dom is ready
});

或更簡單地說:

$(function() {
    //dom is ready
});

正文中包含的腳本在主體加載后執行,並按順序執行。 這可以用作跨瀏覽器解決方案,以確保在頁面加載后加載腳本。

<!DOCTYPE html>
<html>
<head>
    <!-- scripts loaded in unknown order in some browsers -->
    <script type="text/javascript" src="headscript.js"></script>
</head>
<body>

    <!-- scripts included on body execute in order when the DOM is ready -->
    <script type="text/javascript">
        (function () {
            // do what you want here without trashing global scope
            // you should probably include this as an external script
        }());
    </script>
</body>   
</html>

我認為你可能會對ASP頁面的生命周期產生輕微的混淆。

每次構建頁面時,服務器端(VB / C#)代碼中的所有事件都將觸發(除了用戶觸發的事件之外)。 所以初始化,加載,PreRender,渲染,卸載等......只有在構建頁面之后才將其發送到瀏覽器。 一旦瀏覽器有它保持那么你的JavaScript可能被執行。

亞當建議的方式是一種可行的方法。

不用擔心,服務器端腳本將始終在客戶端腳本之前執行。

為了確保在創建頁面上的所有內容(DOMContent-wise)之后執行Javascript,您有幾個選項。 您可以將腳本添加到標記的最底部。 這實際上是一種很好的做法,因為頁面底部的腳本使頁面看起來加載速度更快,並且感知性能很重要。

正如Adam所說,你也可以使用事件處理程序,例如window.onload = function(){}或window.addEventListener(“load”,function(){},true)。 另一種方法是使用“DOMContentLoaded”而不是“load”,這將在html文件的整個文本部分加載后執行(而不是等待加載所有圖像等)。 但是,如果您將腳本放在頁面底部,則不需要這樣做。

這是一個示例html文件。 請注意,樣式表在頂部定義,而腳本在底部定義。

<!DOCTYPE html>
<html>
<head>
<title></title>
<link type="text/css" href="style.css" rel="stylesheet"/>
</head>
<body>
<script type="text/Javascript" src="script.js"></script>
</body>
</html>

是的,有幾種方法可以:

一種。

$(window).ready(function() 
{
   //Your code goes here
});

$(document).ready(function() 
{
   //Your code goes here
});

C。

window.onload = function() 
 {
  //Your code goes here
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM