Rufen Sie onresize über die ASP.NET-Inhaltsseite auf
-
09-06-2019 - |
Frage
Ich habe eine JavaScript-Methode, die ich auf einer meiner Seiten ausführen muss, insbesondere auf der onresize
Ereignis.
Ich sehe jedoch nicht, wie ich dieses Ereignis auf meiner Inhaltsseite festlegen kann.Ich wünschte, ich könnte es einfach auf meiner Masterseite platzieren, aber ich muss die Methode nicht auf allen Seiten aufrufen, die diese Masterseite verwenden.
Jede Hilfe wäre dankbar.
Lösung
Platzieren Sie Folgendes auf Ihrer Inhaltsseite:
<script type="text/javascript">
// here is a cross-browser compatible way of connecting
// handlers to events, in case you don't have one
function attachEventHandler(element, eventToHandle, eventHandler) {
if(element.attachEvent) {
element.attachEvent(eventToHandle, eventHandler);
} else if(element.addEventListener) {
element.addEventListener(eventToHandle.replace("on", ""), eventHandler, false);
} else {
element[eventToHandle] = eventHandler;
}
}
attachEventHandler(window, "onresize", function() {
// the code you want to run when the browser is resized
});
</script>
Dieser Code sollte Ihnen eine grundlegende Vorstellung davon geben, was Sie tun müssen.Hoffentlich verwenden Sie eine Bibliothek, die bereits über Code verfügt, der Ihnen beim Schreiben von Event-Handlern usw. hilft.
Andere Tipps
Ich hatte das gleiche Problem und bin auf diesen Beitrag gestoßen:
IE-Größenänderungsfehler erneut aufgegriffen
Der obige Code funktioniert, aber der IE hat ein Problem, bei dem onresize ausgelöst wird, wenn das Body-Tag seine Form ändert.Dieser Blog bietet eine alternative Methode, die gut funktioniert
Wie wäre es mit der Verwendung von Code wie dem folgenden auf Ihrer Inhaltsseite (C#)?
Page.ClientScript.RegisterStartupScript(this.GetType(), "resizeMyPage", "window.onresize=function(){ resizeMyPage();}", true);
So könnten Sie eine haben resizeMyPage
Diese Funktion ist irgendwo im Javascript definiert und wird jedes Mal ausgeführt, wenn die Größe des Browsers geändert wird!