Projet

Général

Profil

Anomalie #3025

accès à une iframe en javascript : limitation de firefox

Ajouté par Christophe Deseure il y a environ 12 ans. Mis à jour il y a environ 12 ans.

Statut:
Fermé
Priorité:
Haut
Assigné à:
Début:
07/03/2012
Echéance:
% réalisé:

100%

Temps passé:
Distribution:
EOLE 2.2

Description

Exemple sur le plugin de charte (voir ticket lié) :

Lors de l'accès à l'onglet "Charte informatique" dans l'interface d'administration, une iframe est utilisée et la méthode "adjustFrameHeight" du fichier "ajax.js" est appelée par la fenêtre principale pour redimensionner l'iframe à la hauteur de son contenu.
On obtient alors ce message sous Firefox : "Permission refusée à <https://etab.in.academie.fr> d'obtenir la propriété Window.document de <http://etab.in.academie.fr&gt;."
Il est dû à cette ligne javascript : "var height = v_frm.contentWindow.document.body.scrollHeight + 30;"
Il semble que ce soit une restriction forte du navigateur qui empêche la fenêtre principale de manipuler le "document" du contenu de l'iframe juste à cause de la différence de protocole.

Je propose d'ajouter une méthode "getProtocol" à l'objet "$p.url" (contenant déjà "getHost") afin d'être utilisée par "adjustFrameHeight" pour ne pas tenter de redimensionner la hauteur de l'iframe si le protocole est différent entre le parent et l'enfant sous firefox :

getProtocol: function(v_url)
{
    var matches = v_url.match(/^https?/i);
    return matches ? matches[0] : "";
}

Le "else" de la méthode "adjustFrameHeight" deviendrait alors : (j'en ai profité pour sortir la condition existante sur firefox puisqu'elle se faisait dans les 2 cas)

            if ($p.navigator.FF) v_frm.style.height = '100px'; // used on FF to force resize

            // if the iframe is a not a local url, the size properties are not accessable
            // exception firefox (mars 2012) : si le protocole est différent, ça bloque ("Permission refusée à <https://...> d'obtenir la propriété Window.document de <http://...>.")
            if ($p.url.isLocal(v_frm.src) && (v_frm.src).indexOf('framenoresize') == -1 && (!$p.navigator.FF || ($p.url.getProtocol(window.location.href)!=$p.url.getProtocol(v_frm.src)))) {
                var height = v_frm.contentWindow.document.body.scrollHeight + 30;

                // if content height too small, enlarge
                if (height < (pageHeightMinusHeader - 30)) height = pageHeightMinusHeader - 30;

                if (v_doitagain)
                    setTimeout("$p.adjustFrameHeight($('" + v_frm.id + "'),false)",6000);
            }
            else {
                var height = pageHeightMinusHeader - 15;
                // l_frm.scrolling = 'auto' > do not work. With IE this property is not changeable after item creation
            }

Demandes liées

Lié à eole-posh - Anomalie #3026: plugin charte : permettre de redimensionner la hauteur de l'iframe sous Firefox Fermé 07/03/2012
Lié à eole-posh - Anomalie #3412: accès à une iframe en javascript : limitation de firefox Fermé 07/03/2012

Révisions associées

Révision 61dc1978 (diff)
Ajouté par moyooo il y a presque 13 ans

No notif on purge ticket see #3025

Révision e6c28fb9 (diff)
Ajouté par Lionel Morin il y a environ 12 ans

Accès à une iframe en javascript : limitation de Firefox (fixes #3025)

Révision 57f2b150 (diff)
Ajouté par Lionel Morin il y a environ 12 ans

Accès à une iframe en javascript : limitation de Firefox (fixes #3025)

Révision cfe541a7 (diff)
Ajouté par Lionel Morin il y a environ 12 ans

Accès à une iframe en javascript : limitation de Firefox (fixes #3025)

Historique

#1 Mis à jour par Christophe Deseure il y a environ 12 ans

  • Description mis à jour (diff)

#2 Mis à jour par Lionel Morin il y a environ 12 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

#3 Mis à jour par Lionel Morin il y a environ 12 ans

  • Assigné à mis à Lionel Morin

#4 Mis à jour par Lionel Morin il y a environ 12 ans

Appliqué par commit commit:ba984207c271689dcda90cb5d2a802c652b07591.

#5 Mis à jour par Lionel Morin il y a environ 12 ans

#6 Mis à jour par Gérald Schwartzmann il y a environ 12 ans

  • Statut changé de Résolu à Fermé

Formats disponibles : Atom PDF