2010-06-21 98 views
1

我有Javascript。我只想在页面加载时打电话。我不想在回发调用。(Asp.net 3,5)加载页面时请调用Javascript

+0

对不起,我忘了告诉,在MasterPage中的JavaScript。所以jscript在每个页面加载时都被触发。 – Jack 2010-06-21 13:16:12

+0

我无法解决这个问题。内容页面加载时Jscript正在运行。我不想这样做。我只想调用Jscript只有一(1)次.. – Jack 2010-06-21 13:26:24

回答

6

在后面的代码:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     ClientScript.RegisterStartupScript(GetType(), "key", "someFunction();", true); 
    } 
} 
+0

谢谢,但它没有解决我的问题。 – Jack 2010-06-21 13:27:59

+0

如果您希望脚本只运行一次,您可以使用'Session'属性来指示脚本是否已运行,并且基于其值包含脚本还是不包含脚本。 – 2010-06-21 13:33:02

+0

好的。我认为在初始化母版生命周期时不可能运行一次。 – Jack 2010-06-21 13:42:22

-1
<html> 
<head> 

</head> 
<body onload="javascript:yourFunctionCall()"> 

</body> 
</html> 
+2

内部添加该脚本,该脚本仍将在回发时运行 – 2010-06-21 13:06:36

+1

这将在回发中调用。 – 2010-06-21 13:06:53

+0

@Darin和@Joel你是对的.. – Jack 2010-06-21 13:17:23

0

更好事情是在加载标签时调用你的Java脚本函数。在这里,java脚本只会调用一次,而不是在所有的帖子后面。

0

您还可以连接到负载事件,以避免意外覆盖与在JavaScript document.onload身体标记在onload。这通常只是一个问题,即拥有内容页面的母版页实现了自己的加载事件并且覆盖了母版页JavaScript。

<script type="text/javascript"> 
    function Page_loaded() { 
     //Do Work 
    } 

    if (document.all) { 
     //IE 
     window.attachEvent('onload', Page_loaded); 
    } else { 
     //Everything else 
     window.addEventListener('load', Page_loaded, false); 
    } 
</script>