Nous avions découvert un comportement étrange des popups dans IE8. Dans IE7 et IE6 notre pop-up ressemble à ceci:
alt text http://img145.imageshack.us/img145/2318/normall.gif
Mais dans IE8 il a étrange frontière qui « clignote » pour 5-6 fois et ressemble à ceci:
alt text http://img16.imageshack.us/img16/4677/bugo.gif
code qui est utilisé pour montrer ce pop-up:popup clignote dans 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;
}
Ce que je fait des recherches:
1. J'avais essayé de souscrire à l'événement OnPropertyChanged. Mais il ne se déclenche pas lorsque la bordure change, alors que cela fonctionne correctement si j'essaie de modifier ces propriétés à partir du code.
2. J'avais écrit simple observateur qui chaque 100ms interroge popup et les propriétés de dumps. C'est ainsi que j'ai découvert que quelqu'un définit body.style.borderStyle sur "inset" et après quelques secondes sur startet (pas un styleName).
3. Nous avons passé en revue tous les codes JavaScript et nous n'avons trouvé aucune référence sur les valeurs de début ou de fin. Je suis sûr à 99% que ce n'est pas notre code qui change les frontières. Peut-être que c'est une sorte de politique de sécurité IE comme une réaction à notre action.
Des idées - qu'est-ce qui pourrait causer de tels changements dans les bordures de popup dans IE8?
P.S. De plus, je ne peux pas reproduire ce problème en dehors de notre environnement.
P.P.S. Site dans la zone de confiance
P.P.P.S. Le mode IE est les caprices P.P.P.P.S. Certains popups sur la même page fonctionnent bien, mais je ne peux pas trouver la différence entre eux qui pourrait conduire à un tel comportement.
L'équipe de développement d'IE a décidé de rendre la vie dure à ceux qui veulent construire des interfaces riches. FYI: les popups sont utilisés non seulement pour l'injection et les attaques :-) –
Haha ouais - toutes ces interfaces utilisateur qui nécessitent des popups pour fonctionner. Mieux vaut informer les équipes de développeurs de Google Maps/Gmail afin qu'elles puissent horriblement casser l'UX dans la poursuite de cette nouvelle définition de "riche": p –