2012-12-29 23 views
11

Eventuali duplicati:
Javascript that executes after page loadCome chiamare funzione javascript al caricamento della pagina in asp.net

ho applicazione in asp.net 4.0

devo JavaScript per visualizzare offset zona client nella casella di testo: - `

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

`

Tag HTML

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

Come posso chiamare questa funzione al caricamento della pagina in modo che possa visualizzare offset nel campo testo?

+0

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

+7

In realtà, non penso che questo sia un duplicato. La domanda di riferimento riguarda l'interazione HTML/JavaScript generale. Questa domanda e la risposta pertinente sono specifiche per ASP.NET. Sono venuto qui a causa del problema di ASP.NET. – Jahmic

risposta

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> 

punto chiave da notare qui è, il corpo ha un attributo onload. Basta dargli un nome di funzione e tale funzione verrà richiamata al caricamento della pagina.


In alternativa, è anche possibile chiamare la funzione in caso di evento di caricamento della pagina come questo

<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

Luogo questa linea prima del tag script di chiusura, scrivendo a memoria:

window.onload = GetTimeZoneOffset; 
+0

Grazie per la modifica @ sachleen, ho postato la risposta tramite il mio smartphone e non sembra esserci alcun evidenziamento del codice :-) –

+0

aggiungi solo 4 spazi all'inizio della riga. :) – sachleen

19

Calling JavaScript funzione sul codice dietro Page_Load

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

Se avete UpdatePanel c'è quindi provare come questo

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

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

+0

Ho provato questo, ma la pagina non è in grado di identificare ClientScript dà errore per quello – MonaliJ

+1

@MonaliJ: incolla qui cosa hai provato? –

+1

Forse questo è cambiato nelle versioni recenti di .NET ma con framework 4, chiamare qualcosa come: ClientScriptManager scriptManager = Page.ClientScript; scriptManager.RegisterStartupScript (GetType(), "Javascript", "javascript: functionName();", true); – Jahmic

0

usare il tuo codice all'interno

<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

Questa è sintassi errata e genera eccezioni. L'implementazione corretta sarebbe: window.onload = function() {}; – fix

Problemi correlati