IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

IFrame et javascript


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Par défaut IFrame et javascript
    Bonjour!

    J'ai déjà posté un poste similaire il y a quelques jours, mais là je suis tombé sur un autre problème

    J'ai une page aspx dans laquelle je veux afficher une iframe qui va m'afficher une autre page web. Je veux que lorsque l'url de la page web contenue dans mon iframe a une certaine valeur, alors il faut faire une redirection de ma page principale vers un autre lien. Mon idée est de tester l'url de la page contenue dans l'iframe à chaque évènement "onload".

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <script type="text/javascript">
     
        function Toto() {
            alert(document.getElementById('aa').contentWindow.document.location);
            if (window.frames["aa"].location.href == "http://url spécifique") {
                window.parent.location.href = "autre url";
            }
     
        }
    </script>
     
    <iframe src="url" id="aa" runat="server" height="785" width="503" />
    Malheureusement, je n'arrive jamais à récupérer l'adresse url de la page affichée dans l'iframe. J'ai essayé de différentes manières :
    - document.getElementById('aa').contentWindow.document.location
    - window.frames["aa"].location.href

    Selon la manière dont je récupère mon objet, l'objet est de type "object" ou "iframe". Mais quoi qu'il arrive je n'arrive pas à accéder aux champs url ou src de mon objet. Je me retrouve avec des valeurs "undefined", ou bien j'ai une erreur dans ma page qui indique que l'accès à l'objet "location" ou "href" n'est pas autorisé. Je m'excuse pour mes résultats un peu vagues, mais je ne peux faire ces tests qu'à mon bureau.

    Sinon, j'ai remarqué que l'id de mon iframe a changé quand j'affiche la source de ma page, il a remplacé 'aa' par 'ctl00_PlaceHolderMain_aa'. Cela semble normal, mais qu'est ce qui est le mieux: utiliser l'id 'aa' ou 'ctl00_PlaceHolderMain_aa' pour faire mes tests? Est-ce dangereux de manipuler mon objet comme cela? ou y-a t'il un autre moyen de faire qui serait plus correct?

    D'avance merci pour votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 207
    Par défaut
    Pour répondre à ta deuxième question. Le id de ton iframe à probablement été modifié du à l'utilisation de usercontrol et/ou de masterpage. De ce fait, il est toujours préférable de passer par le clientid. Uniquement car si tu désires faire une modification dans ta structure de page ou bien que .net génère différemment les id d'une autre manière du jours au lendemain, cela t'obligerait d'aller modifier encore une fois ta valeur.

    Pour palier à ce problème, tu peux simplement appeler de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('<%= monIFrame.ClientId %>').contentWindow.document.location
    en espérant que cela répondre à ta question.

    Pour l'autre problème, il faudrait que je fouille dans mes archives j'ai déjà eu un problème similaire par le passé. Je vais voir si je retrouve ce que j'avais trouvé comme solution.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Par défaut
    Merci stroumfs pour tes remarques sur l'id!

    Sinon à propos de la ligne de code que tu me proposes, il me semble avoir essayé qqch de semblable mais je me suis pris des "accès refusés". Après quelques recherches il semblerait que ça soit normal, qu'on ne puisse pas accéder à ces données de la page web qu'on affiche si celle-ci ne se trouve pas dans notre domaine.

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Il s'agit là d'un problème connu : l'accès est refusé pour des questions de sécurité.
    "Ce script va générer une erreur "Access denied" sur de nombreux sites.
    Car on ne peut accéder au document d'une iframe qui n'est sur le même domaine que la fenêtre principale.
    Du coup on ne peut pas modifier en JavaScript une iframe qui n'est pas chez nous.", thomas-zilliox

    Regarde peut-être de ce côté, mais à mon avis, tu devrais essayer d'envisager une solution différente de l'Iframe car celle-ci te posera pas mal de problèmes.

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Par défaut
    D'accord calagan99!

    Merci pour tes remarques!

Discussions similaires

  1. Iframe et Javascript
    Par flouisdroopy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/04/2008, 09h47
  2. [DOM] lire le contenu d'une frame/iframe avec javascript
    Par Kyaan dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 22/02/2008, 18h24
  3. Reload iFrame en Javascript
    Par Loizo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/02/2008, 10h10
  4. afficher code source iframe en javascript
    Par theleek dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/11/2007, 17h57
  5. Taille d'une iframe en javascript
    Par genova dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/07/2006, 13h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo