2008-11-07 7 views
3

J'ai essentiellement une page qui montre un écran de "traitement" qui a été vidé dans le navigateur. Plus tard, j'ai besoin de rediriger cette page, actuellement nous utilisons la mise à jour de méta et cela fonctionne normalement bien. Avec un nouveau système de paiement, y compris 3D secure, nous nous retrouvons potentiellement dans un iframe renvoyé à notre site par un tiers.Busting out d'un iframe en utilisant meta-refresh ou javascript?

Je dois pouvoir rediriger à partir de cette page, soit en utilisant javascript ou meta-refresh, et sortir de l'iframe si elle existe.

À la votre!

(je l'ai fait Échapper à iframes avant, mais ne trouve pas mon ancien code et une recherche google était inutile, pensé qu'il était le moment idéal pour essayer Stackoverflow dehors!)

Répondre

4

J'ajouté ce qui suit à mes pages redirigées. Heureusement, ils n'ont rien posté sur eux donc peut être simplement redirigé. De plus, l'utilisation de javascript est acceptable car il est nécessaire d'arriver à ce point dans le site.

<script type="text/javascript" language="javascript"> 
    if (top.frames.length>0) 
    setTimeout("top.location = window.location;",100); 
</script> 
+0

pourquoi avez-vous besoin de le retarder? – Kon

+0

Et votre retard est seulement 1/10ème de seconde. Presque indiscernable à l'utilisateur final à partir d'une redirection instantanée. –

+0

Vous pouvez perdre l'attribut de langue, il est obsolète. – scunliffe

0

que je fais quelque chose de similaire à garder un ancien site à l'intérieur est frameset:

<SCRIPT TYPE="text/JavaScript"> 
    if (window == top){top.location.replace("/foo.html");} 
</SCRIPT> 

Donc, pour sortir de l'iframe, il suffit de changer == à =

Je vois que vous utilisez setTimeout dans votre exemple. Est-ce que vous attendez de sortir de l'iframe une exigence, ou préférez-vous que cela se produise immédiatement?

0

si vous utilisez javascript:

parent.document.location = "http://www.google.com" 

et si vous utilisez HTML:

<a href="http://www.google.com" target=_top >Google</a> 
Questions connexes