Wir hatten seltsames Verhalten von Popups in IE8 entdeckt. In IE7 und IE6 unsere Pop-up sieht wie folgt aus:
alt text http://img145.imageshack.us/img145/2318/normall.gif
Aber in IE8 hat es seltsam Grenze, die „blinkt“ für 5-6 mal und sieht wie folgt aus:
alt text http://img16.imageshack.us/img16/4677/bugo.gif
-Code, die für die Ansicht des Pop-up verwendet wird:Popup blinkt in ie8
Browser.prototype.showPopup = function(someHtml) {
...
var popup = doc.parentWindow.createPopup();
for(var n = 0; n < doc.styleSheets.length; n++) {
popup.document.createStyleSheet(document.styleSheets[n].href);
}
popup.document.body.innerHTML = "<div style=\"width:100%;height:100%;overflow:auto\">" + someHtml + "</div>";
popup.document.parentWindow.Form = Form;
popup.document.attachEvent("onselectstart", IEOnSelectStart);
popup.document.attachEvent("oncontextmenu", IEOnContextMenu);
...
popup.show(x, y, width, height, ctl);
doc.popup = popup;
}
Was ich recherchiert:
1. ich hatte versucht, auf OnPropertyChanged Ereignis zu abonnieren. Aber es funktioniert nicht, während der Rahmen sich ändert, während es funktioniert, wenn ich versuche, diese Eigenschaften vom Code zu ändern.
2. Ich hatte einen einfachen Watcher geschrieben, der jede 100ms Popup abfragt und die Eigenschaften ablegt. So habe ich festgestellt, dass jemand body.style.borderStyle auf "inset" setzt und nach ein paar Sekunden bis zum Anfang (kein styleName).
3. Überprüfte den gesamten JavaScript-Code und fand keine Referenzen auf Einfüge- oder Anfangswerte. Ich bin zu 99% sicher, dass dies nicht unser Code ist, der die Grenzen ändert. Vielleicht ist es eine Art von Sicherheitspolitik für das Internet als Reaktion auf einige unserer Aktionen.
Irgendwelche Ideen - was könnte solche Änderungen der Popup-Grenzen in IE8 verursachen?
P.S. Außerdem kann ich dieses Problem nicht außerhalb unserer Umgebung reproduzieren.
P.P.S. Site in der vertrauenswürdigen Zone
P.P.S. IE-Modus ist Macken P.P.P.P.S. Einige Popups auf derselben Seite funktionieren gut, aber ich kann den Unterschied zwischen ihnen nicht finden, der zu einem solchen Verhalten führen könnte.
Das Entwicklerteam von IE hat beschlossen, das Leben schwer zu machen für diejenigen, die reichhaltige Schnittstellen erstellen wollen. FYI: Popups werden nicht nur für Injektion und Angriffe verwendet :-) –
Haha ja - all die reichen UIs, die Popups zum Arbeiten benötigen. Lassen Sie die Entwickler von Google Maps/Gmail besser wissen, dass sie die UX bei der Verfolgung dieser neuen Definition von "reich" schrecklich brechen können: p –