web-dev-qa-db-fra.com

Rediriger la page parent depuis IFrame

J'utilise un IFrame, et à partir de cet IFrame, je veux rediriger vers une autre page.

Veuillez me dire comment procéder sans JavaScript, c'est-à-dire sans window.location.

Response.Redirect affiche la page dans l'IFrame, mais je veux afficher la page en tant que page principale.

34
Waheed

Ce sera un danger si nous pouvons manipuler d'autres cadres/fenêtres sans utiliser des scripts côté client ou des actions invoquées par l'utilisateur.

Voici une liste d'alternatives:

Options Javascript:

window.top.location.href=theLocation;
window.parent.location.href=theLocation;
window.top.location.replace(theLocation);

Options non javascript:

<a href="theLocation" target="_top">Click here to continue</a>  
<a href="theLocation" target="_parent">Click here to continue</a>
70
o.k.w

J'ai utilisé ce code.

ClientScript.RegisterStartupScript(GetType(), "Load", "<script type='text/javascript'>window.parent.location.href = '../CentinelError.aspx'; </script>");

Et il fonctionne.

13
Waheed

Je pense qu'il n'y a aucun moyen de le faire sans JS. Le navigateur traitera chaque redirection du serveur dans l'iframe. Vous devez lui "dire" de recharger toute la fenêtre en utilisant JavaScript.

5
Michal Dymel

Nous pouvons rediriger à la fois côté serveur et côté client lors de l'utilisation de Iframe <>

Réponse côté client:

window.parent.location.href="http://yoursite.com"

Réponse côté serveur:

Response.Write("<script type=text/javascript> window.parent.location.href ='http://yoursite.com' </script>")
5
user2492312

Eh bien, c'est vraiment un hack, mais vous pouvez définir Parent-Frame comme cible par défaut:

<base target="_parent">

Comme cela s'appliquera à tous vos liens dans l'iframe, cela peut ne pas être une solution satisfaisante ;-)

3
Synox

doit être javascript pour autant que je sache.

self.parent.location='http://'
0
gingerbreadboy

vous POUVEZ le faire sans javascript, si vous avez accès au bloc de tête de la page distante:

<base target="_parent" />

solution 1 ligne très simple, facile, si vous avez accès à un en-tête de page distant. pas de javascript.

0
user336735

Comme tous les autres l'ont souligné, vous ne pouvez pas le faire sans utiliser JavaScript. Cependant, côté serveur, vous pouvez émettre le code JavaScript nécessaire pour que la page soit redirigée vers l'emplacement cible dès qu'elle se charge dans l'iframe.

0
Response.Write( "<script>window.open('" + url + "','_parent');</script>" );

Répondu dans le lien ci-dessous http://forums.asp.net/t/1349064.aspx?Redirect+parent+page+from+within+Iframe

0
user3351873