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 :

document.frames has no properties


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut [RESOLU] document.frames has no properties
    Salut les gars, ça fesait longtemps je sais je vous ai manqué depuis hier ! sisi

    Le sujet d'aujourd'hui est simple :
    selectionner un répertoire comme dans un explorateur.

    J'ai récupéré le code suivant de Nicolas de javascript-page.com
    Merci Nico.

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <SCRIPT LANGUAGE="JavaScript">
     
    // please keep these lines on when you copy the source
    // made by: 
     
    <!-- Begin
    function DriveList()
    {
    var folder=document.Drive.Name.options[document.Drive.Name.selectedIndex].value;
    document.frames['MyComputer'].location.href = folder;
    }
    function FolderChoose()
    {
    var location=document.UserLocation.FolderLocation.value;
    document.frames['MyComputer'].location.href = location;
    }
    // End -->
    </script>
     
    </HEAD>
     
    and then put the following script in the body where you want it to go:
     
    <BODY>
    <FORM NAME="UserLocation">
    <P><font size="2">Type in a Folder Location: </font>
    <INPUT TYPE="text" name="FolderLocation" length="25" size="20">
    <INPUT TYPE="button" value="Open Folder" onClick="FolderChoose();"></P>
    <P><font size="2">EXAMPLE: C:\Program Files\Internet Explorer</font></P>
    </FORM>
    <IFRAME NAME="MyComputer" SRC="about:blank" WIDTH="50%" HEIGHT="20%"></IFRAME>
    </CENTER>
      </body> 
    </html>
    Au passage, il y a bien une bible en javascript, AJAX et XML ? Pour tout vous dire, je suis un ancien bon débutant en java, php, delphi, C, etc... un genre d'étudiant en fait ! et là ça fait 5 ans que j'ai pas pissé une ligne de code ... du coup ça sort mal parfois

    A toute les loutes. Et Merci !

  2. #2
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.frames[0].location.href

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par d-Rek Voir le message
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.frames[0].location.href
    je dirais plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('id_frame').location.href
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <IFRAME id="id_frame" NAME="MyComputer" SRC="about:blank" WIDTH="50%" HEIGHT="20%"></IFRAME>
    EDIT :
    Ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.frames['MyComputer'].location.src
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut
    Merci les mecs pour votre réactivité, ça fait plaisir

    J'ai essayé ça mais ça donne tjs "L19 : document.getElementById("id_frame").location Has no properties

    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
    20
    21
    22
    23
    24
    25
    26
    27
    function DriveList()
    {
    var folder=document.Drive.Name.options[document.Drive.Name.selectedIndex].value;
    document.getElementById('id_frame').location.href = folder;
    }
    function FolderChoose()
    {
    var location=document.UserLocation.FolderLocation.value;
    document.getElementById('id_frame').location.href = location;
    }
    // End -->
    </script>
     
    </HEAD>
     
     
    <BODY>
    <FORM NAME="UserLocation">
    <P><font size="2">Type in a Folder Location: </font>
    <INPUT TYPE="text" name="FolderLocation" length="25" size="20">
    <INPUT TYPE="button" value="Open Folder" onClick="FolderChoose();"></P>
    <P><font size="2">EXAMPLE: C:\Program Files\Internet Explorer</font></P>
    </FORM>
    <IFRAME id="id_frame" NAME="MyComputer" SRC="about:blank" WIDTH="50%" HEIGHT="20%"></IFRAME>
    </CENTER>
      </body> 
    </html>

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par popovitch130 Voir le message
    J'ai essayé ça mais ça donne tjs "L19 : document.getElementById("id_frame").location Has no properties
    Hum ... boulette.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("id_frame").src
    Ici c'est la propriété HTML du tag <iframe> qui est modifiée ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut
    là il me dit que folder est pas déclaré ...
    c'est bien ça qu'il faut écrire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function DriveList()
    {
    var folder=document.Drive.Name.options[document.Drive.Name.selectedIndex].value;
    // document.getElementById('id_frame').location.href = folder;
    document.getElementById("id_frame").src = folder;
    }
    function FolderChoose()
    {
    var location=document.UserLocation.FolderLocation.value;
    //document.getElementById('id_frame').location.href = location;
    document.getElementById("id_frame").src = location;
    }

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Il est bien déclaré, mais en variable locale, alors que tu l'utilises dans une autre fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     var folder='';
    function DriveList()
    { folder=document.Drive.Name.options[document.Drive.Name.selectedIndex].value;
    ....
    Et la syntaxe pourrait être modernisée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    folder=document.forms['Drive'].elements['Name'].options[document.forms['Drive'].elements['Name'].selectedIndex].value;
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut
    document.forms.Drive has no properties ...

    function DriveList()
    {
    var folder=document.Drive.Name.options[document.Drive.Name.selectedIndex].value;
    document.forms['Drive'].elements['Name'].options[document.forms['Drive'].elements['Name'].selectedIndex].value = folder;
    }


    function FolderChoose()
    {
    var location=document.UserLocation.FolderLocation.value;
    document.forms['Drive'].elements['Name'].options[document.forms['Drive'].elements['Name'].selectedIndex].value = location;
    }

  9. #9
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 649
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 649
    Points : 11 138
    Points
    11 138
    Par défaut
    bonjour

    j'ai mis à jour ton code :
    Code html : 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <html>
    <head>
    <title></title>
    <head>
     
    <script type="text/javascript">
    <!--
    // please keep these lines on when you copy the source
    // made by: 
     
    <!-- Begin
     
    function DriveList(obj)
    {
     var folder = "file://" + obj.options[obj.selectedIndex].value + ":\\";
     window.frames['MyComputer'].location.href = folder;
     
    }
     
    function FolderChoose()
    {
      var location = "file://" + document.getElementById("FolderLocation").value;
      window.frames['MyComputer'].location.href = location;
    }
    // End
    //-->
    </script>
     
     
     
    </head>
     
    <body>
     
    and then put the following script in the body where you want it to go:
     
    <form name="UserLocation">
    <p><font size="2">Type in a Folder Location: </font>
     
    <select size="1" id="combo" onchange="DriveList(this)">
        <option value="A">A:\</option>
        <option selected="selected" value="C">C:\</option>
        <option value="D">D:\</option>
        <option value="E">E:\</option>
      </optgroup>
    </select>
     
     
     
    <input type="text" id="FolderLocation" name="FolderLocation" length="25" size="20" />
    <input type="button" value="Open Folder" onclick="FolderChoose()" />
    </p>
     
    <p><font size="2">EXAMPLE: C:\Program Files\Internet Explorer</font></p>
    </form>
     
    <iframe id="MyComputer" name="MyComputer" src="about:blank" width="50%" height="20%"></iframe>
     
     
    </body>
     
    </html>

    important :
    - donne la même valeur aux attributs id et name de ton iframe ;
    - sous FF il faut préciser le protocole (d'où l'ajout de file:// devant les valeurs).

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut
    Merci beaucoup, je vais pouvoir m'en sortir normalement.
    RQ : le click sur le bouton me donne cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Erreur : uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMLocation.href]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: file:///D:/Program%20Files/EasyPHP1-8/www/scripts/taist.html :: FolderChoose :: line 23"  data: no]
    toi aussi ? ou je dois paramétrer un truc ?

    L'idéal aurait été d'ouvrir une popup avec le bouton "Open Folder" ... un classique que je ne trouve pas hélàs. Quelqu'un aurait un script de ce genre ?

  11. #11
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 649
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 649
    Points : 11 138
    Points
    11 138
    Par défaut
    c'est Firefox qui te retourne cette erreur ?

    En fait il faut faire attention à la syntaxe, écris ceci dans l'input et ça devrait passer (sans le nom de fichier):
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    C:\Program Files\EasyPHP1-8\www\scripts\

    Fais plusieurs tests...

    dans mes tests j'écrivais ceci en pasant qu'il fallait doubler les \ :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    C:\\Program Files\\
    et Firefox plantait


    L'idéal aurait été d'ouvrir une popup avec le bouton "Open Folder"
    bah :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="file" />
    ou
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window.open("file://C:/Program Files","","")
    ne conviennent pas ? Dans le second cas, le seul problème c'est que FF peut bloquer la pop-up.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut
    <input type="file" /> ouvre bien une popup mais ne permet pas de sélectionner un répertoire ...

    windows.open ouvre un onglet ou une nouvelle fenêtre en fonction des params.

    C'est domage car cette source pourrait-être interressante pour la communauté. C'est une opération basique pourtant, c'est bizzare qu'on arrive pas à la faire tourner correctement [enfin pour moi c'est normal, à part j'en suis au level comment faire un alert('hello world') Lol ] . Vous en pensez quoi vous ?

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut
    Effectivement, il y a un soucis de sécurité, nous voilà donc je présume dans les limites de Javascript ... (il faudrait passer par un active X etc.) En revanche, sécurité ou pas, je ne comprends pas pourquoi on peut choisir de séléctionner un fichier et pas un dossier ...

    J'essaye une alternative qui pourrait être interessante :
    on utilise un <input type="file"> pour sélectionner un fichier et avec un petit script appelé sur l'évenement adéquat, on affiche juste le répertoire contenant le fichier séléctionné. PB : ça fonctionne pas evidemment et j'ai toujours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Erreur : document.forms[0].txtFile has no properties
    Fichier source : file:///D:/Program%20Files/EasyPHP1-8/www/scripts/webCustom.html
    Ligne : 1
    Voici le code :

    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
    20
    21
    22
    23
    24
    25
    26
    <form>
      <div style="position :absolute ;">
         <input type="file" name="fileBackground" size="60"
         onfocus="document.forms[0].nomFichier.value=RecupRep(document.forms[0].txtFile.value)"
         onchange="document.forms[0].nomFichier.value=RecupRep(document.forms[0].txtFile.value)">
      </div>
      </form>
      <br /><br />
     
     
     <script language="javascript">
     
    function RecupRep(s){
       var l = s.length();
       var i = 0;
       var rep = "";
       var c = s.charAt(i);
     
       for(i=l;c/="\\";i--){
       		c = s.charAt(i);
    	}
    	i++;
    	l--;
    	rep = s.substring(i,l);
    	alert(rep);
    }
    Je pense qu'on arrive enfin au bout du pb ... si ça fonctionne, je ferais tourner ce petit script afin que d'autres ne se cassent pas la tête sur cette problèmatique.

  14. #14
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 649
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 649
    Points : 11 138
    Points
    11 138
    Par défaut
    Citation Envoyé par popovitch130 Voir le message
    J'essaye une alternative qui pourrait être interessante :
    on utilise un <input type="file"> pour sélectionner un fichier et avec un petit script appelé sur l'évenement adéquat, on affiche juste le répertoire contenant le fichier séléctionné. PB : ça fonctionne pas evidemment et j'ai toujours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Erreur : document.forms[0].txtFile has no properties
    Fichier source : file:///D:/Program%20Files/EasyPHP1-8/www/scripts/webCustom.html
    Ligne : 1
    Pour des raisons de sécurité, tu ne peux pas modifier le texte de l'input file (du côté javascript en tout cas).

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut
    Bonne nouvelle pour la communauté : j'ai enfin investi dans une bible

    Pour le pb qu'on a ici, il reste comme solution : ActiveX ...
    trouvé la dessus :

    EN THEORIE :
    après avoir accepté le controle sous IE.
    Pour firefox installer le plugins de prise en charge des contrôle active X,
    voir http://www.geckozone.org/articles/20...us-firefox-1-0


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function RepertoireChoix(){
      var shl = new ActiveXObject("Shell.Application");
      return(shl.BrowseForFolder(0, "choix d'un répertoire", 0).Items().Item().path);
    }
    EN PRATIQUE
    IE : je pratique pas !
    FIREFOX : ActiveXOBject is not define (j'ai cherché sous google et apparemment y a pas mal de monde qui a ce pb avec Firefox ou netscape etc ...) Il faut absoluement contrer cette suprématie d'IE et communiquer sur cette fonctionnalité sinon on va encore nous mettre l'étiquette le Logiciel libre c'est gratuit mais pas au point ou pour des utilisateurs techniques ce qui en général est faux vous êtres d'accord !

Discussions similaires

  1. document.form1 has no properties
    Par Poussy-Puce dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/03/2007, 21h49
  2. Réponses: 2
    Dernier message: 07/01/2007, 12h22
  3. [Mozilla] document.getElementById(var) has no properties
    Par dys_ dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/11/2005, 15h33
  4. document.images[i] has no properties, kesako ?
    Par weed dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 07/10/2005, 17h59
  5. document.getElementById() has no properties ..
    Par ahage4x4 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/06/2005, 17h04

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