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 :

[POO] Document.open dans IE7 ne marche plus ?


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 199
    Par défaut [POO] Document.open dans IE7 ne marche plus ?
    Bonjour à tous,
    Depuis que j'ai installé IE7, le code suivant ne fonctionne plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function displayData(){
    dataWindow=open('','','toolbar=0,directories=0,menu=0,scrollbars=1,location=0,resizable=1,status=0,top=400,left=300,width=600,height=200,menubar=0,dependent=1,hotkeys=0');
    dataWindow.document.open();
    dataWindow.document.write("<HTML><HEAD><TITLE>Mon titre");
    dataWindow.document.write("</TITLE></HEAD><BODY onBlur='window.close();' style='font-family: Arial;'>");
    dataWindow.document.write("bla bla bla");
    dataWindow.document.write("</BODY></HTML>");
    dataWindow.document.close();
    }
    La fonction est appelée de la manière suivante (en svg) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <g onclick="displayData();">
    J'obtiens l'erreur (Script error) suivante :

    Accès refusé.
    Ligne 3045, column 0
    Ce code fonctionne avec les versions antérieures de IE.

    Quelqu'un peut-il m'aider ?

    MercI.

  2. #2
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Tu te trompes...
    document.open ne veut pas dire que tu peux commencer à écrire et document.close que tu as fini d'écrire....

    document.open c'est la même chose que window.open, à la seule différence près qu'au lieu de renvoyer l'objet WINDOW, il renvoie l'objet DOCUMENT.

    Quant'à document.close, ca n'a jamais existé

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 199
    Par défaut
    J'insiste quand même sur le fait que ce script marche sur une version antérieure à IE7 et pas sur IE7...
    Merci FremyCompany pour tes indications mais pourrais-tu être un petit peu plus explicit et m'indiquer, dans ce cas, ce qu'il faut écrire ?

  4. #4
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function displayData(){
    dataWindow=open('','','toolbar=0,directories=0,menu=0,scrollbars=1,location=0,resizable=1,status=0,top=400,left=300,width=600,height=200,menubar=0,dependent=1,hotkeys=0');
    //dataWindow.document.open();
    dataWindow.document.write("<HTML><HEAD><TITLE>Mon titre");
    dataWindow.document.write("</TITLE></HEAD><BODY onBlur='window.close();' style='font-family: Arial;'>");
    dataWindow.document.write("bla bla bla");
    dataWindow.document.write("</BODY></HTML>");
    //dataWindow.document.close();
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 199
    Par défaut
    Ok, merci.
    En revanche, ça ne résoud pas le problème d'erreur. J'obtiens toujours le message "Accès refusé".
    Tu vois pourquoi ?

  6. #6
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    C'est ou la ligne 3045 ?

    Sinon, moi j'écrirais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataWindow=open("about:blank", ....)
    Ou encore mieux, creer sur ton serveur un fichier empty.html à la racine et faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    open("/empty.html",...)

  7. #7
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Citation Envoyé par FremyCompany
    Tu te trompes...
    document.open ne veut pas dire que tu peux commencer à écrire et document.close que tu as fini d'écrire....

    document.open c'est la même chose que window.open, à la seule différence près qu'au lieu de renvoyer l'objet WINDOW, il renvoie l'objet DOCUMENT.

    Quant'à document.close, ca n'a jamais existé
    C'est sur?
    J'ai pourtant vu pas mal de code faire ça...

  8. #8
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    C'est bien la bonne methode pour ecrire dynamiquement le code html entier d'une page

    http://www.w3.org/TR/DOM-Level-2-HTM...ml#ID-72161170

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 199
    Par défaut
    Merci pour ces nouvelles précisions.
    Mon problème semble relié au svg (dans lequel j'utilise le JavaScript) : en effet, le code html suivant fonctionne :

    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
    19
    <html>
    <head>
    </head>
    <body>
      <script language="JavaScript">    
    function displayData(){
    dataWindow=open('','','toolbar=0,directories=0,menu=0,scrollbars=1,location=0,resizable=1,status=0,top=400,left=300,width=600,height=200,menubar=0,dependent=1,hotkeys=0');
    dataWindow.document.write("<HTML><HEAD><TITLE>Titre");
    dataWindow.document.write("</TITLE></HEAD><BODY onBlur='window.close();' style='font-family: Arial;'>");
    dataWindow.document.write("bla bla bla");
    dataWindow.document.write("</BODY></HTML>");
    }
      </script>      
     
    <a href="javascript:displayData()">
    	test
    </a>
    </body>
    </html>
    En revanche, l'équivalent en svg me donne toujours l'erreur "Accès refusé". Si quelqu'un sait pourquoi et sait comment résoudre le problème, merci de me le dire. Je vais quand même me tourner aussi vers un forum svg.

  10. #10
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    document.open : http://msdn.microsoft.com/library/de...ods/open_1.asp
    Opens a new window and loads a document specified by a given URL. This method can also be used to open a new window which uses the sUrl and sName parameters to collect the output of the write and writeln methods.

  11. #11
    Membre confirmé Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Par défaut
    Salut,

    Juste comme ça, à vu de nez, j'ai l'impression qu'il ne s'agit tout simplement pas des mêmes "open"
    Personnellement, de tête, je pense qu'on pourrait écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function displayData(){
    dataWindow=open('','','toolbar=0,directories=0,menu=0,scrollbars=1,location=0,resizable=1,status=0,top=400,left=300,width=600,height=200,menubar=0,dependent=1,hotkeys=0');
    dataWindow.open();
    dataWindow.document.write("<HTML><HEAD><TITLE>Titre");
    Et je me demande même si la première ligne ne devrait pas plutot s'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataWindow = window.open('','','toolbar...)

  12. #12
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Citation Envoyé par Ricou13
    Salut,

    Juste comme ça, à vu de nez, j'ai l'impression qu'il ne s'agit tout simplement pas des mêmes "open"
    Personnellement, de tête, je pense qu'on pourrait écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function displayData(){
    dataWindow=open('','','toolbar=0,directories=0,menu=0,scrollbars=1,location=0,resizable=1,status=0,top=400,left=300,width=600,height=200,menubar=0,dependent=1,hotkeys=0');
    dataWindow.open();
    dataWindow.document.write("<HTML><HEAD><TITLE>Titre");
    Et je me demande même si la première ligne ne devrait pas plutot s'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataWindow = window.open('','','toolbar...)
    Lol, faut lire les réponses des autres

    OPEN, que ce soit de document ou de window :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    // Ca sert à ouvrir une nouvelle fenêtre

  13. #13
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Sous IE seulement..

  14. #14
    Membre confirmé Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Par défaut
    Citation Envoyé par FremyCompany
    Lol, faut lire les réponses des autres
    C'est ce que j'ai fait !

    Je ne dis pas que Gruik ou toi avez raison ou tort car je ne maitrise pas assez les spécifications. Seulement il y a ambiguité dans les documents.

    A la base, je suis d'accord que "document.open" === "windows.open" === ouverture de document.

    Sous Msdn, "document.open" (ou windows.open) recoit des paramètres et retourne une "référence au nouvel objet document ou window".
    On peut donc logiquement penser qu'il s'agit d'un objet de type "document" (et c'est comme ça qu"on s'en sert d'ailleurs).
    Ce que j'ai écrit peut donc sembler redondant mais je ne sais pas si tu l'avais remarqué, mais dans ma ligne "open" (en rouge), il n'y avait volontairement pas de "document." contrairement au code originel.

    Donc, si tu dis que les "open" sont les mêmes et donc que les 2 docs parlent de la même chose (certes, tu ne l'a pas dit directement mais le sous entendu est bien présent), comment tu expliques que la doc de Gruik précise "no parameters" et "no return" ? Un "windows.open()" tout seul, sans paramètre, ne doit pas être très efficace, non ?

    D'un autre coté, il faut préciser que la doc de Gruik date de janvier 2003...
    Et que cela ne fera pas avancer le Schmilblik de jgfa9...

  15. #15
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Oui, je viens de lire...

    Ben en fait ca n'au aucun intérêt
    Open a document stream for writing. If a document exists in the target, this method clears it.
    La première partie prévient que ca fait la même chose que window.open (même si c'est dit implicitement)

    Et la deuxième partie dit qu'en fait, si tu ne passe aucun paramètre, il suppose les paramètres suivants (pour faire un "reset" du document) : document.open("about:blank", "_self", null)

    Enfin, ce n'est pas exactement ce que dit W3C, gruik a raison sur ce qu'il dit, mais aucun navigateur ne respecte ca

    La preveuve, quand il a enlevé open et close de son code, ca marchait toujours !

  16. #16
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 57
    Par défaut
    Bonjour,

    Avez vous réussi a régler ce problème ?

    Si oui, comment avez vous fait, je suis exactement dans la même situation et je ne trouve pas la solution.

    J'ai un message d'erreur acces refusé sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataWindow=open("","","toolbar=0,directories=0,menu=0,scrollbars=0,location=0,resizable=0,status=0,top=50,left=50,width=350,height=300,menubar=0,dependent=1,hotkeys=0");

    Merci par avance

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 199
    Par défaut
    Maheureusement non. J'utilise à la place la fonction javascript "alert()".
    Si vous touvez une solution, merci de la poster.

  18. #18
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 57
    Par défaut
    Bonsoir,

    J'ai trouvé une solution cet apres midi.

    Pour mon projet, j'ai :
    • une page carte.html
    • une page carte.svg
    • un fichier fonction.js


    Ma fonction est appelée lorsque je clique sur un élément sur mon svg.

    Dans mon cas, lorsque j'incluais le fichier javascript depuis le svg ça ne fonctionnait pas

    J'ai essayé de le mettre dans ma page html et là pas de problème ça fonctionne.

    En espérant que ça marchera également pour vous

    Bonne soirée

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/10/2009, 18h34
  2. onKeypress avec return false ne marche plus sous IE7
    Par forrestier2003 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 09/10/2008, 15h10
  3. [OOo] import de données xml dans un document open office writer
    Par anouka dans le forum XML/XSL et SOAP
    Réponses: 11
    Dernier message: 02/08/2008, 20h20
  4. Réponses: 6
    Dernier message: 02/06/2008, 10h17
  5. Code qui ne marche plus sur IE7 Beta
    Par Death83 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/03/2006, 00h15

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