2012-05-06 2 views
7

Это мой сценарий:оповещения после загрузки страницы

<% 
    if (TempData["Resultat"] != null){ 
%> 
<script type="text/javascript"> 
    alert('<%: TempData["Resultat"]%>'); 
</script> 
<% 
    } 
%> 

В этом случае всплывающее окно отображается перед тем загружена страница, но я хочу, чтобы имя пользователя появятся после полной загрузки страницы. в Html это выглядит следующим образом:

<body onload="happycode() ;"> 

, но я не могу использовать его в MVC я получил одну главную страницу для всех моих веб-приложения

ответ

9

Если вы можете использовать JQuery, то вы можете поставить оповещение внутри функция $(document).ready(). это будет выглядеть примерно так:

<script> 
    $(document).ready(function(){ 
    alert('<%: TempData["Resultat"]%>'); 
    }); 
</script> 

Чтобы включить JQuery, включают в себя следующее в <head> тег кода:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> 

Вот быстрый пример в jsFiddle: http://jsfiddle.net/ChaseWest/3AaAx/

+0

другой вопрос в моем alert special caracter показаны в коде ASCI, например '' '' как его декодировать? – Chlebta

+0

Есть ли способ увидеть больше кода или, возможно, пример, и я постараюсь помочь больше. – Chase

+0

это мой пример формы ViewData 'L'ajout de promotion à reussi', но в предупреждении строка showin похожа на этот показ, подобный этому' L ' ajout de promotion à reussi' – Chlebta

3

Почему может Вы используете его в MVC?

Вместо использования метода загрузки тела используйте jQuery и дождитесь завершения работы функции onready.

+0

OP не может использовать MVC3 для бритвы , –

+0

@ Valamas отредактировал – user1378687

3

С помощью JQuery для обработки документов готового события,

<script type="text/javascript"> 

function onLoadAlert() { 
    alert('<%: TempData["Resultat"]%>'); 
} 

$(document).ready(onLoadAlert); 
</script> 

Или еще проще - поставить <script> в конце body, а не в head.

+0

(ответ на удаленный вопрос): да, у меня было несколько сеансов отладки, когда 'console.log()' и отладчик дали разные результаты – zerkms

13

Существует три способа.
Первый поместить тег сценария в нижней части страницы:

<body> 
<!--Body content--> 
<script type="text/javascript"> 
alert('<%: TempData["Resultat"]%>'); 
</script> 
</body> 

Второй способ создать событие OnLoad:

<head> 
<script type="text/javascript"> 
window.onload = function(){//window.addEventListener('load',function(){...}); (for Netscape) and window.attachEvent('onload',function(){...}); (for IE and Opera) also work 
    alert('<%: TempData["Resultat"]%>'); 
} 
</script> 
</head> 

Он будет выполнять функцию, когда окно нагрузки ,
Наконец, третий способ заключается в создании readystatechange события и проверить текущий document.readyState:

<head> 
<script type="text/javascript"> 
document.onreadystatechange = function(){//window.addEventListener('readystatechange',function(){...}); (for Netscape) and window.attachEvent('onreadystatechange',function(){...}); (for IE and Opera) also work 
    if(document.readyState=='loaded' || document.readyState=='complete') 
     alert('<%: TempData["Resultat"]%>'); 
} 
</script> 
</head> 
+0

Первый способ не работает. Например. У меня есть страница со сценарием перед '', и перед появлением страницы в окне браузера появится «предупреждение»; на самом деле страница не загружается, пока я не отклонил «предупреждение». – globewalldesk

1

Добавить код ниже в PageLoad События:

ScriptManager.RegisterStartupScript(Page, this.GetType(), "myScript", "alert('OK Done.');", true); 
Смежные вопросы