JSF 2.0 javascript-onload - /oncomplete
Arbeite ich mit Myfaces 2.0 nach einem langen Projekts mit MyFaces 1.1 + Tomahawk + Ajax4JSF. 2.0 ist definitiv eine enorme Verbesserung. Obwohl ich kann nicht scheinen, um eine onload-javascript funktionieren. Ich stecken in meinem Kopf:
<script type="text/javascript">
window.onload = function () {
var fileDownload = document.getElementById('userManagementForm:fileDownload');
if (fileDownload.value == 'true') {
fileDownload.value = false;
window.open('Download');
}
}
</script>
Aber es wird nicht ausgeführt. Ich sah ein wenig an der Quelle myfacecs JS und bemerkte ich, dass Sie etwas mit dem onload. Nicht zu viel in die details, aber es scheint zu blockieren, mein Versuch überschreiben Sie das onload-Ereignis. Gibt es einen anderen Weg, um dieses, vielleicht ein direkter Aufruf der JSF-Bibliothek?
Andere Frage, irgendwie auf das gleiche Thema. Ajax4JSF hatte ein Attribut "oncomplete", die lassen Sie laufen einige Javascript nach Ajax-request abgeschlossen. Gibt es ein äquivalent in MyFaces 2.0 mit f:ajax? Kommen Sie, daran zu denken, ich habe nicht versucht, Ereignis="oncomplete", vielleicht klappt es.
InformationsquelleAutor Matt | 2011-04-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Okay, so habe ich es herausgefunden.
Laden Sie das Skript am oberen Rand der Seite später wird überschrieben
Wenn ich Sie laden das Skript am Ende der Seite setzt es die onload, aber es bricht auch die JSF-Mechanismus. So die bessere Lösung war, um Benutzer JSF onload Sache und das Skript am Ende der Seite. Nach dem Graben durch die JSF-Quelle ein bisschen fand ich die Funktion.
Und natürlich hatte ich, um zu definieren, checkDownloadFile die tut, was ich hatte im ursprünglichen post.
Habe ich auch herausgefunden, für die oncomplete. Das f:ajax-tag hat ein Attribut onevent die wird 3 mal aufgerufen. Einmal vor der Ausführung und zweimal nach. Ich glaube, einmal sofort nach Abschluss der Anfrage, dann wieder nach der Aktualisierung der Seite Komponenten. Die callback-Funktion nimmt einen parameter-die hat einen status. Also in der callback-Funktion, die Sie überprüfen Sie den status, um zu entscheiden, ob oder nicht, um etwas zu tun. Die Zustände werden beginnen, abschließen und Erfolg. Also für meinen Fall habe ich:
Und dann das Skript:
InformationsquelleAutor Matt