2012-12-29 9 views
11

Mögliche Duplizieren:
Javascript that executes after page loadJavaScript-Funktion auf Seite Last in asp.net nennen

Ich habe Anwendung in asp.net 4.0

i haben Javascript angezeigt werden Client-Zonen-Offset in Textfeld: - `

<script type="text/javascript"> 
    function GetTimeZoneOffset() { 
     var d = new Date() 
     var gmtOffSet = -d.getTimezoneOffset(); 
     var gmtHours = Math.floor(gmtOffSet/60); 
     var GMTMin = Math.abs(gmtOffSet % 60); 
     var dot = "."; 
     var retVal = "" + gmtHours + dot + GMTMin; 
     document.getElementById('<%= offSet.ClientID%>').value = retVal; 
    } 

</script> 

`

Html MarkUp

<asp:HiddenField ID="clientDateTime" runat="server" /> 
<asp:HiddenField ID="offSet" runat="server" /> 
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></body> 

Wie kann ich diese Funktion beim Laden der Seite aufrufen, so dass ich in Textbox Offset-Anzeige kann?

+0

http://stackoverflow.com/questions/807878/javascript-that-executes-after-page-load – Fred

+7

Eigentlich halte ich das nicht für ein Duplikat. Die referenzierte Frage bezieht sich auf allgemeine HTML/JavaScript-Interaktion. Diese Frage und die relevante Antwort ist spezifisch für ASP.NET. Ich kam wegen des ASP.NET-Problems hierher. – Jahmic

Antwort

7
<html> 
<head> 
<script type="text/javascript"> 
function GetTimeZoneOffset() { 
    var d = new Date() 
    var gmtOffSet = -d.getTimezoneOffset(); 
    var gmtHours = Math.floor(gmtOffSet/60); 
    var GMTMin = Math.abs(gmtOffSet % 60); 
    var dot = "."; 
    var retVal = "" + gmtHours + dot + GMTMin; 
    document.getElementById('<%= offSet.ClientID%>').value = retVal; 
} 

</script> 
</head> 
<body onload="GetTimeZoneOffset()"> 
    <asp:HiddenField ID="clientDateTime" runat="server" /> 
    <asp:HiddenField ID="offSet" runat="server" /> 
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
</body> 
</html> 

entscheidende Punkt ist hier zu bemerken ist, Körper hat ein Attribut onload. Geben Sie ihm einfach einen Funktionsnamen und diese Funktion wird beim Laden der Seite aufgerufen.


Alternativ können Sie auch die Funktion auf Seite Load-Ereignis aufrufen wie diese

<html> 
<head> 
<script type="text/javascript"> 

window.onload = load(); 

function load() { 
    var d = new Date() 
    var gmtOffSet = -d.getTimezoneOffset(); 
    var gmtHours = Math.floor(gmtOffSet/60); 
    var GMTMin = Math.abs(gmtOffSet % 60); 
    var dot = "."; 
    var retVal = "" + gmtHours + dot + GMTMin; 
    document.getElementById('<%= offSet.ClientID%>').value = retVal; 
} 

</script> 
</head> 
<body > 
    <asp:HiddenField ID="clientDateTime" runat="server" /> 
    <asp:HiddenField ID="offSet" runat="server" /> 
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></body> 
</body> 
</html> 
2

Platz diese Zeile vor dem letzten Skript-Tag, aus dem Speicher zu schreiben:

window.onload = GetTimeZoneOffset; 
+0

Danke für die Bearbeitung @ Sachleen, ich habe die Antwort über mein Smartphone geschrieben und es scheint keine Code-Hervorhebung zu geben :-) –

+0

fügen Sie einfach 4 Leerzeichen an den Anfang der Zeile. :) – sachleen

19

JavaScript aufrufen Funktion auf Code hinter zB Auf Page_Load

ClientScript.RegisterStartupScript(GetType(), "Javascript", "javascript:FUNCTIONNAME(); ", true); 

Wenn Sie UpdatePanel dort haben dann versuchen, wie diese

ScriptManager.RegisterStartupScript(GetType(), "Javascript", "javascript:FUNCTIONNAME(); ", true); 

Blog Artikel: How to Call javascript function from code behind in asp.net c#

+0

Ich versuchte dies, aber Seite kann ClientScript nicht identifizieren, geben Sie Fehler für das – MonaliJ

+1

@MonaliJ: einfügen hier, was Sie ausprobiert? –

+1

Vielleicht hat sich dies in neueren Versionen von .NET geändert, aber mit Framework 4, rufen Sie etwas wie folgt auf: ClientScriptManager scriptManager = Page.ClientScript; scriptManager.RegisterStartupScript (GetType(), "Javascript", "javascript: functionName();", true); – Jahmic

0

Code verwenden innerhalb

<script type="text/javascript"> 
    function window.onload() 
     { 

     var d = new Date() 
     var gmtOffSet = -d.getTimezoneOffset(); 
     var gmtHours = Math.floor(gmtOffSet/60); 
     var GMTMin = Math.abs(gmtOffSet % 60); 
     var dot = "."; 
     var retVal = "" + gmtHours + dot + GMTMin; 
     document.getElementById('<%= offSet.ClientID%>').value = retVal; 

     } 
    </script> 
+0

Dies ist falsche Syntax und löst Ausnahmen. Die korrekte Implementierung wäre: window.onload = function() {}; – fix