2009-07-25 10 views
0

IE 8 ne rafraîchit pas une fenêtre contextuelle qui affiche une image avec un manipulateur javascript de base. J'essaie d'étudier les problèmes avec IE 8 et ASP.net 3.5 mais je n'ai pas beaucoup de chance avec cette recherche.Fenêtre contextuelle IE8 non rafraîchissante

Alors qu'est-ce que je fais?

Je dispose d'un conteneur d'onglets (Ajax Control Toolkit) qui contient un affichage en grille qui, lorsque vous le sélectionnez, affiche un popup avec l'image sélectionnée. Je passe l'emplacement de l'image à travers une variable de session. Dans Firefox 3.5, il affiche toujours les différentes images.

Voici le code étant inséré dans la page pour javascript:

Dim javatext As New System.Text.StringBuilder() 
Session("ImageLoc") = Path 
javatext.Append("<script>window.open('" & "ImageViewer.aspx" & "',null,'left=400,") 
javatext.Append(" top=100,height=600px, width=600px, status=no, resizable= yes, scrollbars= yes,") 
javatext.Append("toolbar= no,location= no, menubar= no');</script>") 

ClientScript.RegisterStartupScript(Me.GetType(), "showTreatMedia", javatext.ToString()) 

Ce code avec des chemins différents est à deux boutons de commande dans la vue de la grille. Et le chemin diffère selon que l'utilisateur veut un format compressé ou le format d'origine. Vérification du code, il entre la première fois mais pas la seconde.

chargement de la page de la fenêtre d'image montrant:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     If Not IsNothing(Session("ImageLoc")) Then 
      imgPic.ImageUrl = Session("ImageLoc") 
     End If 
End Sub 

De plus, le site est en cours d'exécution en mode de compatibilité IE7.

Répondre

0

Ok, ce qui s'est passé c'est que j'utilisais toujours la même URL. J'ai ajouté ce code:

Dim rand As New Random 
Dim numvalue As Integer = rand.Next(0, 2000) 
Session("ImageLoc") = objMedia.PathFull 
javatext.Append("<script>window.open('" & "ImageViewer.aspx?something=" & numvalue & "',null,'left=400,") 
javatext.Append(" top=100,height=600px, width=600px, status=no, resizable= yes, scrollbars= yes,") 
javatext.Append("toolbar= no,location= no, menubar= no');</script>") 

ClientScript.RegisterStartupScript(Me.GetType(), "showTreatMedia", javatext.ToString()) 

Et maintenant, il change l'image à chaque fois et prend le nouveau chemin. Ainsi, le fait de maintenir le chemin de l'image dans la variable de session était une erreur. Et il semble qu'IE8 ait besoin que le chemin change pour rafraîchir la fenêtre contextuelle.

Espérons que cela peut aider d'autres personnes.

+1

Il est probable que le vrai problème est que votre page ImageViewer.aspx n'envoyait pas d'en-têtes de mise en cache qui empêcheraient IE de réutiliser la version précédemment mise en cache de la page. En savoir plus ici: www.fiddler2.com/redir/?id=httpperf – EricLaw

Questions connexes