2012-12-29 2 views
11

Можно создать дубликат:
Javascript that executes after page loadКак Вызов JavaScript функции на странице загрузки в asp.net

я иметь приложение в asp.net 4.0

У меня есть JavaScript для отображения смещение клиентской зоны в текстовое поле: - `

<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 разметка

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

Как я могу вызвать эту функцию при загрузке страницы, так что я могу отображать смещение в текстовое поле?

+0

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

+7

На самом деле, я не думаю, что это дубликат. Наложенный вопрос касается общего взаимодействия HTML/JavaScript. Этот вопрос и соответствующий ответ относятся к ASP.NET. Я пришел сюда из-за проблемы ASP.NET. – Jahmic

ответ

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> 

ключевой момент, чтобы заметить здесь, тело имеет атрибут onload. Просто дайте ему имя функции и эта функция будет вызвана при загрузке страницы.


В качестве альтернативы, вы можете также вызвать функцию на события загрузки страницы, как этот

<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

Место эту строку перед тегом закрытия сценария, написание из памяти:

window.onload = GetTimeZoneOffset; 
+0

Спасибо за редактирование @ sachleen, я отправил ответ через мой смартфон и, похоже, не выделяет код :-) –

+0

просто добавьте 4 пробела в начало строки. :) – sachleen

19

Calling JavaScript функция по коду позади, т.е. По состоянию на Page_Load

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

Если у вас есть UpdatePanel там тогда попробовать, как этот

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

Читать дневник статьи: How to Call javascript function from code behind in asp.net c#

+0

Я пробовал это, но страница не может идентифицировать ClientScript, она дает ошибку для этого – MonaliJ

+1

@MonaliJ: вставьте сюда то, что вы пробовали? –

+1

Возможно, это изменилось в последних версиях .NET, но с фреймворком 4, вызовите что-то вроде этого: ClientScriptManager scriptManager = Page.ClientScript; scriptManager.RegisterStartupScript (GetType(), "Javascript", "javascript: functionName();", true); – Jahmic

0

использовать свой код в

<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

Это неправильный синтаксис и исключает исключения. Правильной реализацией будет: window.onload = function() {}; – fix

Смежные вопросы