2009-02-12 9 views
6

Je travaille sur une page web qui a un iframe et je charge un site externe dans l'iframe. La page fonctionne bien dans IE6, FF etc mais dans IE7 tout ce que je vois est une page blanche. J'ai trouvé que cela est dû au filtre d'hameçonnage dans IE 7. Le filtre d'hameçonnage ne sera pas en mesure de vérifier la page Web à l'intérieur de l'iframe afin qu'il ne sera pas rendu correctement. Avez-vous déjà fait face à ce problème? Comment puis-je le résoudre?IE7 iframe blank page

Modifier: OK. Après avoir vu les deux premières réponses, je pense que je devrais donner plus d'explications à cela. La page est pour le traitement des paiements et je charge une page (d'une société tierce) qui demande des informations de carte de crédit. Juste après avoir entré les détails et en appuyant sur continuer, l'iframe devient vide. Après beaucoup d'enquête, nous avons constaté que IE7 n'accepte pas les cookies tiers (lorsque la page est chargée dans iframe). C'est quelque chose à voir avec les paramètres de sécurité. Certains articles sur Internet disent que je peux contourner le filtre d'hameçonnage. Comment puis-je le faire?

Répondre

4

Si vous utilisez ASP puis ajoutez ce code

Response.AddHeader "p3p", "CP=" & chr(34) & "CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR" & chr(34) 

dans toutes les pages qui sont chargés dans le iframe

+10

N'utilisez pas aveuglément la chaîne P3P donnée. Déterminez votre propre politique de confidentialité P3P. Lisez http://www.p3ptoolbox.org/guide/ pour plus de détails. – Anirvan

2

Avez-vous défini l'attribut IFRAME WIDTH? J'ai lu à ce sujet avant et dans ces occasions avait à voir avec l'attribut 'WIDTH'.

Ainsi, au lieu d'utiliser l'attribut WIDTH de l'iframe, vous pouvez utiliser l'attribut STYLE à la place:

<IFRAME SRC='yourpage.html' STYLE='width:100%;'></IFRAME> 

[UPDATE]
Dans mon exemple ci-dessus, je l'ai utilisé un% -age de déclarer la largeur de l'IFRAME. Vous pouvez essayer de le déclarer en pixels au lieu de pourcentage, par exemple .:

<IFRAME SRC='yourpage.html' STYLE='width:600px;'></IFRAME> 

Là encore, cela ne pouvait être le problème dans votre cas, mais s'il vous plaît ne fournir plus d'informations.

+1

Comme je l'ai lu maintenant dans le startpost, il a quelque chose à faire avec les cookies tiers. Je vais laisser ma réponse pour plus de référence ... – RuudKok

0

Peut-être que vous utilisez une balise de titre comme < TITRE/>

3

IE7 n'accepte pas les cookies 3ème partie (lorsque la page chargée dans iframe).

Il peut faire, cela dépend des options qui sont définies. Surtout si le niveau de confidentialité a été augmenté, le tiers doit fournir un fichier de politique P3P pour s'assurer que IE ne va pas être vilain. (En tant que mesure de confidentialité, c'est un peu un IMO de perte, mais nous sommes coincés avec elle.)

Je charge une page (d'une société tierce) qui demande des informations de carte de crédit.

Whoah! Ne fais pas ça. L'utilisateur ne pourra pas voir à partir de la barre d'adresse que c'est l'URL correcte du site et qu'il est correctement crypté avec SSL. Vous demandez effectivement à vos clients de faire confiance à un site et à une connexion inconnus.

Perd l'iframe. La plupart des processeurs de paiement auront des options pour styliser vos pages de paiement en fonction de votre site, et retourneront l'utilisateur sur votre site quand ils auront fini.

+0

Ouais, je suis d'accord !! Mais nous n'avons pas d'autre choix que d'utiliser un iframe maintenant. La page est redessinée pour convenir à notre conception. J'ai essayé d'ajouter l'en-tête de p3p et il montre toujours le "cookie" avis bloqué! – Shoban

+0

Ce doit être le tiers (processeur de paiement) qui ajoute la politique P3P à leurs propres pages, j'ai peur. – bobince

1

Enfin, j'ai trouvé la solution pour cela!

Il peut être résolu en ajoutant l'en-tête p3p à la page Web. Cela indique au navigateur que le cookie créé par les pages de l'iframe est OK pour la vie privée de l'utilisateur. L'en-tête doit être ajouté à toutes les pages chargées dans l'iframe.Voici quelques liens qui montrent comment cela peut être réalisé dans différents langages de script (PHP, ASP.net, JSP, etc).

http://adamyoung.net/IE-Blocking-iFrame-Cookies

http://adamyoung.net/IE-Blocking-iFrame-Cookies

http://admon.org/node/99

Note: J'utilise force cette solution pour des raisons de sécurité et de conformité. Merci Bobince

Questions connexes