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

JavaScript Discussion :

Firefox 3.5.6 - window.opener


Sujet :

JavaScript

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut Firefox 3.5.6 - window.opener
    Je suis passé de 3.0... à 3.5.6.

    J'ai une appli qui ouvre une nouvelle fenêtre. La nouvelle fenêtre via window.opener se fait connaitre à sa fenêtre mère qui la recompose entièrement.
    Par la suite, les évènements d'erreur et de fermeture de la fenêtre fille sont gérés par la fenêtre mère.

    Jusqu'à présent, tout ceci fonctionnait très bien sous Safari, IE7, Chrome, Opera et FF.

    J'avais finallement noté un problème sous FF (Win vs Mac pensais-je). Sous Win j'étais en 3.0... sous MAc, déjà en 3.5.6.
    J'ai upgradé FF Win pour voir : Bingo ! Plus rien ne fonctionne sous FF.

    Y-a-t'il un moyen de gérer les window.opener sous FF pour que le correctif sécurité chrome window.opener ne mette pas la pagaille dans ce type de procédure "classique" ?
    Vaut-il mieux que je downgrade ?

    [EDIT]
    Ce correctif n'est peut-être pas la cause du problème. Je viens de downgrader un FF en 3.0.16 où le même correctif est présent, et là, ça marche

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut
    La liaison window.opener n'est pas en cause comme je le pensait.
    (Brievement, dans mon code, une quelconque erreur déclenche un appel à la fenêtre mère. Ceci ne se produisait plus).

    Il s'agit d'un problème lié à window.onerror
    Je n'ai pas plus d'information pour le moment, mais voilà ce que j'ai :

    window.onerror n'est plus déclenché sous FF 3.5.??? (Je n'ai pas pu vérifier sous d'autres versions, je ne sais donc pas à partir de quelle version cela se produit). En tout cas, les 3.5.6 et 3.5.7 n'y échappent pas.
    C'est toujours actif sous 3.0.16 (A voir pour la 3.0.17).

    Il s'agit de l'objet global, MAIS cela touche tous les scripts.
    Plus aucun onerror sur tag SCRIPT ne fonctionne.

    Les seuls onerror qui soit encore actif, sont ceux des images (objet et tag).

    FF rejoint Safari et Chrome sur ce point, pour lequels il n'y a plus que le try/catch qui soit opérant pour intercepter une erreur de script. Ce qui du coup, n'est plus vraiment une interception d'erreur mais une encapsulation de l'erreur.

    Sur ce point, IE est plus respectueux des consignes W3C que Firefox... C'est le monde à l'envers

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <html>
    <head>
    <title>Title</title>
         <script type="text/javascript">
        window.onerror = function (msg, url, num) {
            alert("description:\t"+msg + '\n' + "localisation:\t"+url + '\n' + "erreur nr.:\t"+num);
            return true;
        }
        </script>
     
     
    </head>
    <body>
        <script type="text/javascript">
        mystere;
        </script>
    </body>
    </html>
    testé sous ffx 3.5.5
    et après mise à jour sous 3.5.7 et ça marche pareil
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut
    J'en reviens pas

    Et oui, ça fonctionne bien.
    Du coup, j'ai repris ma page que je génère, copiée/collée et HOP ! Ben c'est là que j'ai un problème...

    Merci de ton intervention .

    Je vais creuser encore pour trouver ce qu'il ne lui plait pas à FF 3.5... Parce que le window.onerror me convient mieux (même si maintenant, je catch...)

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut
    Ca y est !

    La différence la voici :
    J'ai changé l'exécution de mes scripts (window.onerror et celui dont les erreurs éventuelles sont surveillées). Au lieu de les lancer "à la volé", j'ai tout regroupé et soumis à exécution de onload...
    Et là ça fonctionne !

    Le cas est particuliers, puisque je compose la page à la volé (popup, handle.open()+write()+close()).

    Ce qui était surprenant, c'est que mon script s'exécutait, mais le onerror n'était jamais sollicité. Comme si l'objet window ne pouvait être 'modifié' qu'à condition que le document soit fermé.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    oui le coup du window.close àprès modif du DOM sur la page... j'ai déjà rencontré une paire de bugs à cause de ça mais je n'ai jamais vraiment réussi à cerné après quelles modifications il fallait faire le close.
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut
    Mais là je parle du document.close()

    Ouverture pop-up.
    popup.document.open()
    popup.document.write('<html>etc...<script>...</script>etc...</html>')
    popup.document.close()

    Les scripts étaient bien interprétés au moment de l'écriture, à l'exception de l'affectation de window.onerror qui n'était du coup plus déclenché, SAUF lorsque l'affectation se produit après le document.close(), ici au onload.

    C'est curieux, car en chargement direct, ça fonctionne (tu me l'a démontré) ; Mais en pop-up sur FF 3.5, il faut tout assujettir au onload, alors que ça ne pose pas de problème sous FF 3.0

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    arf oui ... j'ai pense document mais ecrit window ...
    mais mon propos est bien celui de document !
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. window.open blur avec FireFox
    Par voyageurdumonde dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/01/2013, 04h24
  2. Réponses: 2
    Dernier message: 20/01/2012, 09h58
  3. window.open et Firefox
    Par Will Fou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/08/2008, 09h02
  4. window.open IE/FIREFOX
    Par odelayen dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/02/2006, 14h32
  5. window.open et Firefox
    Par Pierrick dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 06/10/2005, 16h53

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