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

jQuery Discussion :

Comment récupérer la sélection courante sur l'iframe


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de CactO_o's
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 98
    Par défaut Comment récupérer la sélection courante sur l'iframe
    Bonjour à tous,

    Je suis en train de créer un éditeur de texte WISIWIG en jQuery et je crée une fonction pour ajouter des balises :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var myIframe = $(this).children('iframe').contents().find("#contentIframe");
     
    /****/
     
    function insertTag(start, end, myFrame)
    {
        /****/
    }

    Le problème est que je n'arrive pas à récupérer la sélection courante sur l'iFrame. J'ai trouvé du code pour récupérer sur la page normal mais 2 problèmes :

    - Ce n'est pas du code jQuery et je n'arrive pas à le convertir.
    - Ce code ne récupéré pas la selection d'une iFrame mais du document courant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (window.getSelection){ 
        var selection = window.getSelection(); 
    } else if (document.getSelection){ 
        var selection = document.getSelection(); 
    } else { 
        var selection = document.selection.createRange().text; 
    }


    J'ai passé pas mal d'heure à essayé retrouvé ça mais impossible...

    Merci à vous !

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    Il existe ce plugin : http://plugins.jquery.com/project/a-tools

    Je ne l'ai jamais utilisé, mais il me semble valable a priori.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre confirmé Avatar de CactO_o's
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 98
    Par défaut
    En effet je n'avais pas vu que ce plugin existait.

    Par contre j'ai essayé avec une iFrame et les réponses me laissent pensé que le plugin ne fonctionne que sur des formulaires ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var selection = myIframe.getSelection();
     
    alert('-->'+selection);
    alert('Start : '+selection.start);
    alert('End : '+selection.end);
    alert('Length : '+selection.length);
    alert('Text : '+selection.text);
    Réponse :

    -->[object Object]
    Start : undefined
    End : undefined
    Length : undefined
    Text : undefined
    Par contre je ne sais pas comment afficher le contenu entier d'une objet pour voir ce que contient mon object retourné.

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    La page démo : http://www.ampparit.com/projects/a-tools/demo.html, fonctionne mais avec jQuery 1.3.2 lorsque je copie son contenu et teste sous jQuery 1.4.1 rien ne fonctionne ! Désolé !

    Oups ! J'avais une erreur dans le nom du fichier js !

    Cela fonctionne, mais uniquement sur des textarea et des input. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert($("#frameID").contents().find("textarea").getSelection());

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre confirmé Avatar de CactO_o's
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 98
    Par défaut
    Le problème est que je n'ai pas de textarea mais un DIV en contenteditable... :s

Discussions similaires

  1. Comment récupérer un fichier texte sur un site ?
    Par michel71 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 21/10/2007, 23h52
  2. Réponses: 7
    Dernier message: 14/04/2007, 17h25
  3. Comment récupérer la valeur courante de SpinCtrl
    Par effde dans le forum wxPython
    Réponses: 3
    Dernier message: 25/02/2007, 20h11
  4. [TShellListView] Comment récupérer la sélection ?
    Par Mimi Bulles dans le forum Composants VCL
    Réponses: 1
    Dernier message: 23/06/2005, 21h21
  5. Réponses: 2
    Dernier message: 15/06/2005, 18h01

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