2008-12-11 5 views
0

Mise à jour 1:
Impossible de reproduire cela sur un ordinateur d'un collègue (même configuration que la mienne) donc je suppose que c'est un problème mon poste de travail et pas un général.IE6: window.onresize fonctionne sur IIS, souffle sur asp.net Dev serveur

Je vous serais reconnaissant si quelqu'un fermait cette question car je n'ai pas assez de réputation pour le faire moi-même.

@MatthewMartin. Merci pour vos commentaires :-)


Mise à jour 2:
Contrairement à mon collègue de travail, je VS90sp1-KB945140-ENU.exe (SP1) et VS90SP1-KB957912-x86.exe (correctif JS IntelliSense) installé sur ma machine. Que apparaît être la seule différence entre nos configurations. J'ai enlevé les deux, mais cela n'a pas résolu mon problème.


Dans ma page asp.net (C#) est un peu de Javascript pour redimensionner un objet lorsque l'utilisateur redimensionne la fenêtre.

Lorsque j'accède à la page en utilisant IE6 sur mon serveur DEV (IIS), il fonctionne.
Lorsque j'accède à la page en utilisant IE6 via VS2008 en utilisant F5 ou CTRL-F5 (qui démarrent tous les deux le serveur de développement ASP.NET), échoue. Il semble entrer dans une boucle infinie de redimensionnement où la fonction adjSpreadsheetSize déclenche l'événement window.resize, qui invoque adjSpreadsheetSize ... Répéter ad infinitum

Je vois pas mal de gens se plaindre là-bas que IE6 ne peut pas gérer correctement onresize événements, mais personne ne semble avoir ce problème précis.

Une idée de pourquoi ce code fonctionne sur IIS mais pas sur ASP.NET Development Server?

est ici la partie pertinente du code:

[snip] 
<head> 
[snip] 
<script language="javascript" type="text/javascript"> 
    window.onresize = adjSpreadsheetSize; 
    window.onload = pageSetup; 

    //Change spreadsheet size to fill the window (viewport) below the entry form 
    function adjSpreadsheetSize() { 
     var objSS = document.getElementById("OWC_data"); 
     var winWidth = document.documentElement.clientWidth; 
     var winHeight = document.documentElement.clientHeight; 

     winHeight -= document.getElementById('form_body').offsetHeight; 

     objSS.height = winHeight; 
     objSS.width = winWidth; 
     return false; 
    } 

    function pageSetup() { 
     adjSpreadsheetSize(); 
    } 
</script> 

[snip] 
</head> 
<body> 
<form id="form1" runat="server" action="rawdata.aspx" method="get"> 
<div id="form_body"> 
[snip] 
</div> 
</form> 
<div id="OWC_container"> 
    <object id="OWC_data" classid="clsid:0002E559-0000-0000-C000-000000000046"> 
    </object> 
</div> 

Ma configuration:

  • Windows XP Pro SP2
  • version Microsoft Visual Studio 2008 9.0.21022.8 RTM
    • édition installée: Professionnel
    • Microsoft Visual Basic 2008
    • Microsoft Visual C# 2008
    • Microsoft Visual C++ 2008
    • Microsoft Visual Studio 2008 Tools pour Office
    • Microsoft Visual Web Developer 2008
    • Cristal Rapports de base pour Visual Studio 2008
  • Microsoft .NET Framework Ver sion 3.5 SP1
  • Le projet de site vit sur le serveur DEV (cartographié comme un lecteur local)

Répondre

0

Puisque c'est un objet activex vous essayez de charger, peut-être votre MSIE est configuré pour faire confiance http://localhost plus http://localhost:1235/foo ?

Autres différences avec IIS vs développement ASP.NET:

par IIS ne tourne que certains fichiers sur le filtre aspnet, serveur dev ASP.NET tourne vers IIS tout.

De plus, le changement de numéro de port peut parfois modifier les comportements.

0

I ajouté
alert("Viewport: " + document.documentElement.clientHeight + " - formHeight: " + formHeight + " = " + winHeight);

Pour une raison quelconque, la div "form_body" retourne et vient entre "421" et "435" (différence de 14). J'ai donc ajouté une bordure pour essayer de voir où le changement se produit ... <div style="border: solid 1px red;" id="form_body">

Et quand la bordure est là, le redimensionnement fonctionne. Facilement reproductible ... ajoutez le style de bordure et le redimensionnement se déclenche 3 à 5 fois. Retirez la bordure et elle se déclenche à plusieurs reprises tant que je souhaite m'asseoir et le regarder.

WTF?

Questions connexes