页面加载后执行Javascript

时间:2011-12-07 16:12:12

标签: javascript asp.net

我是JavaScript的新手,并且在发生事件时会发现一个小问题。情况就是这样。我正在编写一个ASP.Net应用程序。在我的代码后面,在Page_Load()中我有一些代码。我需要先执行此代码。在此代码执行完毕后,我需要执行JavaScript。

是否存在确保代码按该顺序执行的事件或事物?

5 个答案:

答案 0 :(得分:8)

最简单的方法是将函数调用添加到body的onload事件

<body onload="yourFunction()">

function yourFunction() {
}

或者,您也可以在身体的结束处放置一些脚本。此处的任何脚本都将在处理正文后执行。你将能够做像

这样的事情
var divElement = document.getElementById("divId");

没有它回来为null。

修改

我没有在你的问题上看到jQuery标记,但是,如果你碰巧使用它,你也可以这样做:

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

或更简单:

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

答案 1 :(得分:3)

正文中包含的脚本在主体加载后执行并按顺序执行。这可以用作跨浏览器解决方案,以确保在页面加载后加载脚本。

<!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>

答案 2 :(得分:1)

我认为您可能会对ASP页面的生命周期产生轻微的混淆。

每次构建页面时,服务器端(VB / C#)代码中的所有事件都将触发(除了用户触发的事件之外)。所以初始化,加载,PreRender,渲染,卸载等......只有在构建页面之后才将其发送到浏览器。一旦浏览器掌握了,那么就可以执行您的JavaScript。

亚当建议的方式是一种可行的方式。

答案 3 :(得分:1)

不用担心,服务器端脚本将始终在客户端脚本之前执行。

为了确保在页面上的所有内容(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>

答案 4 :(得分:1)

是的,有几种方法可以:

一个。

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

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

℃。

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