Czy istnieje zdarzenie javascript, które jest wywoływane na poczcie zwrotnej?Zdarzenie JavaScript na stronie odsyłającej
Jeśli nie, w jaki sposób mogę uruchomić kod po stronie klienta natychmiast po lub przed odesłaniem strony?
Czy istnieje zdarzenie javascript, które jest wywoływane na poczcie zwrotnej?Zdarzenie JavaScript na stronie odsyłającej
Jeśli nie, w jaki sposób mogę uruchomić kod po stronie klienta natychmiast po lub przed odesłaniem strony?
Użyj AJAX, z obsługą zdarzeń dla onComplete
.
Impreza onsubmit na tagu formularza
Przy użyciu jQuery to jak to
$("#yourformtagid").submit(function() {
...
}
JQuery? Nie jestem pewien, czy OP chce użyć kompletnej platformy tylko po to, by wykonać swoje zadanie;) –
Ale każda strona powinna mieć jQuery na wszelki wypadek :-) – TFD
koleś, to nie było fajne. –
Można dodać JavaScript w swojej stronie obciążenia jak to ...
Page.ClientScript.RegisterStartupScript(this.GetType(), "alert",
"alert('hello world');", true);
OR
Page.ClientScript.RegisterStartupScript(this.GetType(), "alertScript",
"function Hello() { alert('hello world'); }", true);
Nie ma zdarzenie javascript wyzwalane, gdy strona ładuje się po odświeżenie strony, ale można dodać javascript do szablonu HTML (.aspx pliku) i uruchomić go tylko wtedy, gdy strona została wysłana, tak:
<script type='text/javascript'>
var isPostBack = '<%= this.IsPostBack%>' == 'True';
if (isPostBack) {
alert('It's a PostBack!');
}
</script>
Jeśli chcesz dostosować JavaScript, aby funkcjonować tylko w szczególnych warunkach (nie byle odświeżenie strony), można utworzyć zmienną na poziomie strony (chronione lub publiczne) w klasie Twojej strony i zrobić coś podobnego:
var userClickedSubmit = '<%= this.UserClickedSubmit%>' == 'True';
if (userClickedSubmit) {
// Do something in javascript
}
(Nic przeciwko ClientScript.RegisterStartupScript
, co jest w porządku - czasami chcesz zachować swój javascript w szablonie strony, więc metimes, które chcesz zachować w swojej klasie strony.)
Obiekt Page.ClientScript ma RegisterOnSubmitStatement Jest uruchamiany po każdym wprowadzeniu formularza. Może to być lub nie jest to, czego szukasz, ale użyłem go do powiadomienia użytkownika o niezapisanych zmianach w edytowalnych formularzach.
Zaletą korzystania z tego przez RegisterStartupScript jest to, że z RegisterOnSubmitStatement, jeśli użytkownik nawiguje z dala iz powrotem za pomocą przeglądarki, cokolwiek skrypt wstrzyknięty przy użyciu RegisterStartupScript mógłby ponownie wystrzelić, natomiast RegisterOnSubmitStatement będzie działał tylko wtedy, gdy użytkownik przesłał forma.
Dzięki, spróbuję tego podejścia! – Bruno
ja nie wiem, czy trzeba jeszcze, ale spójrz na to:
Run javascript function after Postback
mi rozwiązać mój problem za pomocą tego:
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function (s, e) {
alert('Postback!');
});
istnieją wiele opcji, takich jak
$('#id').live('change', function(){});
$(document).ready(function() {});
ClientScriptManager.RegisterStartupScript(this.GetType(), "AKey", "MyFunction();", true);
i kontynuuj. zależy od tego, czego potrzebujesz.
Pozdrowienia =)
Wierzę, czego szukasz jest Sys.WebForms.PageRequestManager beginRequest Event
Fragment:
Impreza beginRequest jest podniesione przed rozpatrywaniem asynchronicznych startów odświeżenie i odświeżenie jest wysyłane na serwer. Możesz użyć tego zdarzenia, aby wywołać skrypt niestandardowy, aby ustawić nagłówek żądania lub uruchomić animację, która powiadamia użytkownika, że przetwarzanie jest odświeżone o .
Przykładowy kod: (z linku)
<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args)
{
var elem = args.get_postBackElement();
ActivateAlertDiv('visible', 'AlertDiv', elem.value + ' processing...');
}
function EndRequestHandler(sender, args)
{
ActivateAlertDiv('hidden', 'AlertDiv', '');
}
function ActivateAlertDiv(visstring, elem, msg)
{
var adiv = $get(elem);
adiv.style.visibility = visstring;
adiv.innerHTML = msg;
}
</script>
Mam nadzieję, że pomaga. Klasa PageRequestManager wydaje się być mało znana i mało używana.
+1 Witamy w Stack Overflow, Bruno. – Sampson