Warum wird das Ereignis "window.resize" ausgelöst, wenn Tabs in Chrome (6.0.472.55) geändert werden?

8

Ich bin heute Abend auf ein interessantes -Bug -Feature gestoßen, als ich einen Handler für window.onresize in Chrome geschrieben habe (die neueste Version 6.0.472.55). Öffnen Sie zunächst zwei Registerkarten und öffnen Sie dann im ersten Tab dieses jsFiddle .

Ändern Sie die Größe des Fensters nach Belieben und das Dialogfeld funktioniert wie erwartet. Versuchen Sie jetzt, zum zweiten Tab -_- zu wechseln. Warum wird resize ausgelöst, wenn die Registerkarte geändert wird? Könnte jemand Einblick / mehr Details geben, wenn ich einen Fehler einreichen muss?

    
TheCloudlessSky 15.09.2010, 00:20
quelle

4 Antworten

3

Der Fehler wurde mit Google gemeldet. Vorläufig habe ich es ignoriert, da mein tatsächlicher onresize - Handler keine Alarmboxen anzeigt.

    
TheCloudlessSky 18.09.2010, 00:39
quelle
1

Nun, wie wäre es damit? Klingt wie ein Fehler. Ich würde vermuten, dass onresize durch eine Kombination von Verhaltensweisen gehört wird, wahrscheinlich neue Daten über die Seitengröße, die aus irgendeinem Grund bei der Ausrichtung eines Tabs eintreffen.

In der Version, die ich unter Windows 5.0.375.127 verwende, passiert das nicht, aber wenn ich die Größe des Fensters tatsächlich verändere, wird das Ereignis resize zweimal ausgelöst .

Wenn Sie wissen, dass es da ist, können Sie einen Schritt tun, um es zu besiegen (das Google für Sie tun sollte). Wickeln Sie eine if -Anweisung um Ihren Handler, die nach einer tatsächlichen Änderung in clientHeight oder clientWidth sucht, wenn Sie nur dann etwas benötigen, wenn das Ereignis (wie wir es verstehen) tatsächlich auftritt.

    
Isaac Lubow 15.09.2010 02:14
quelle
1

Aus dem Fehlerbericht :

  

Wenn Sie Dev Tools in Splitview verwenden und zu einem Tab ohne Dev wechseln   Werkzeuge in Split geöffnet, wird das Resize-Event ausgelöst.

     

Wenn also die nächste Registerkarte nicht dieselbe Fenstergröße hat, wird resize () verwendet   gefeuert werden.

    
Kevin C. 26.09.2012 19:54
quelle
0

Wenn ich nicht weiß, wie Chrome Tab-Wechsel und Seitenrendering handhabt, ist meine Schätzung genauso gut (oder schlecht, je nachdem, wie man es betrachtet) als die des nächsten. Ich würde vermuten, dass das erneute Rendern der Seite oder das erneute Laden der bereits gerenderten Seite, wenn sie zwischengespeichert wird, das Ereignis onresize auslöst. Dies geschieht, wenn die Registerkarte umgeschaltet wird. Wenn ich meiner Theorie folge, würde ich vermuten, dass Chrome das Größenanpassungsereignis bei der ersten Seitenanzeige nicht auslöst, weil es nicht dafür vorgesehen ist. Aber noch einmal, da ich nicht weiß, wie Chrome intern mit Tab-Wechseln umgeht, ist das nur Spekulation (Denkanstoß).

    
Chris Laplante 15.09.2010 00:36
quelle

Tags und Links