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 :

Récupération de la sélection dans un iFrame


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Septembre 2004
    Messages : 7
    Par défaut Récupération de la sélection dans un iFrame
    Bonjour à tous,

    Voici mon pb : je voudrais savoir s'il est possible de récupérer du texte sélectionné dans un iFrame affichant un fichier PDF, Word, RTF, ...
    J'ai déjà essayé des trucs du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var doc = window.frames["mon_iframe"].document;
    var rng = doc.selection.createRange();
    var txt = rng.text;
    Mais hélàs cela ne marche pô ...

    Autrement, si ça n'est pas possible directement, est-il possible de déclencher la fonction "copier" des composants qui affichent ces fichiers, comme ça je pourrais récupérer ce que je veux dans le clipboard.
    J'ai déjà essayé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    window.frames["mon_iframe"].document.execCommand("Copy");
    et ça ne marche pas non plus ...

    Je sais que ce n'est pas trop terrible d'afficher ce genre de documents dans un navigateur Web (surtout que ça fonctionne juste avec IE ), mais bon c'était une fonctionnalité qui avait été demandé par les utilisateurs du site ....

    Merci d'avance pour vos réponses

  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
    si les pages sont sur le même serveur :
    le doc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (iframe.window?iframe.window:iframe.contentWindow).document
    doc.getSelection() ou doc.selection.createRange()

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Septembre 2004
    Messages : 7
    Par défaut
    Merci beaucoup Fremy pour ta réponse

    Je viens de faire un test en plaçant les lignes suivantes dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var iframe = document.getElementById("mon_iframe");
    var doc = (iframe.window?iframe.window:iframe.contentWindow).document;
    var rng = doc.selection.createRange();
    var txt = rng.text;
    Malheureusement, j'ai toujours une erreur sur la ligne où est déclarée la variable doc, avec le message suivant : "Cette interface n'est pas prise en charge"

  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
    Citation Envoyé par jl26
    Merci beaucoup Fremy pour ta réponse

    Je viens de faire un test en plaçant les lignes suivantes dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var iframe = document.getElementById("mon_iframe");
    var doc = (iframe.window?iframe.window:iframe.contentWindow).document;
    var rng = doc.selection.createRange();
    var txt = rng.text;
    Malheureusement, j'ai toujours une erreur sur la ligne où est déclarée la variable doc, avec le message suivant : "Cette interface n'est pas prise en charge"
    Tu es sur que tes pages sont sur le meme serveur

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Septembre 2004
    Messages : 7
    Par défaut
    Oui, aucun souci de ce côté là : mes pages Web et les documents que j'affiche dans mes iFrame sont bien hébergés sur le même serveur.

    Encore merci pour ton aide !!

  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
    essaie : alert(iframe); alert(iframe.window); alert(iframe.contentWindow);

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Septembre 2004
    Messages : 7
    Par défaut
    Salut,

    Citation Envoyé par FremyCompany
    essaie : alert(iframe);
    -> [object]
    Citation Envoyé par FremyCompany
    alert(iframe.window);
    -> undefined
    Citation Envoyé par FremyCompany
    alert(iframe.contentWindow);
    -> [object]

    Ensuite, si je tente d'accéder à l'objet document :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var doc = iframe.contentWindow.document;
    J'ai le message "Cette interface n'est pas prise en charge".

    Grâce à mon meilleur ami ( ), j'ai aussi trouvé un message sur un forum (hélàs sans réponse ... ) dans lequel il est question d'accéder au composant Adobe qui affiche un PDF directement dans un iFrame.

    Sur ce, je retourne à mes recherches, et si qqun a une idée, je suis preneur !

  8. #8
    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
    juste comme ca : que vaut :
    -iframe.contentWindow.self
    -iframe.contentWindow.self.document
    -iframe.document
    -iframe.contentDocument

  9. #9
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Septembre 2004
    Messages : 7
    Par défaut
    Citation Envoyé par FremyCompany
    juste comme ca : que vaut :
    -iframe.contentWindow.self -> [object]
    -iframe.contentWindow.self.document -> renvoie l'erreur "Cette interface n'est pas prise en charge"
    -iframe.document -> [object]
    -iframe.contentDocument -> undefined
    Ensuite, j'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var rng = iframe.document.selection.createRange();
    txt = rng.text;
    alert(txt);
    Mais à chaque fois ma chaîne txt est vide ...

    En tout cas merci encore pour ton aide précieuse, et pour la rapidité à laquelle tu me répond !!

  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
    Citation Envoyé par jl26
    Ensuite, j'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var rng = iframe.document.selection.createRange();
    txt = rng.text;
    alert(txt);
    Mais à chaque fois ma chaîne txt est vide ...

    En tout cas merci encore pour ton aide précieuse, et pour la rapidité à laquelle tu me répond !!
    Et que contient ton objet document ? (ta page web dans la frame)

  11. #11
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Septembre 2004
    Messages : 7
    Par défaut
    En fait, mon iframe affiche directement un document attaché à mon article : par exemple, il peut afficher directement un doc Word, comme sur la copie d'écran suivante

  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 jl26
    En fait, mon iframe affiche directement un document attaché à mon article : par exemple, il peut afficher directement un doc Word, comme sur la copie d'écran suivante
    Lol, si il s'agit d'autre chose qu'une page web, pas étonnant que ca marche pas

  13. #13
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Septembre 2004
    Messages : 7
    Par défaut
    Comme tu dis, c'est bien différent d'une simple page Web !!
    Mais comme on dit souvent, pourquoi faire simple qd on peut faire compliqué ??!!

    Enfin bon, si je ne trouve pas de moyen d'arriver à ce que je veux faire, c'est pas trop grave qd même ... j'arriverais bien à me débrouiller autrement.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/12/2013, 15h34
  2. Récupérer le code HTML de la sélection dans une iFrame
    Par umeboshi dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/11/2009, 10h04
  3. Réponses: 1
    Dernier message: 20/12/2008, 15h02
  4. Réponses: 2
    Dernier message: 31/03/2008, 14h32
  5. Réponses: 2
    Dernier message: 20/02/2004, 08h47

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