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érer code d'un copier/coller


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Récupérer code d'un copier/coller
    Bonjour

    Je suppose que cette question a dut etre soulevé plusieurs fois, mais ne trouvant pas mon bonheur je requière votre aide.

    Travaillant sur un Editeur de texte WYSIWYG ce que j'aimerais faire est de pouvoir récupérer le code d'un copier/coller sous sa forme HTML afin de pouvoir le nettoyer le code obtenu grace a une fonction (la fonction est déjà faite, mais si je ne trouve pas ce moyen je devrais toujours nettoyer le code lors d'une action ce que je trouve relativement lourd).

    J'ai trouvé des méthodes qui marche sous "Chrome" et "IE" Ici :
    http://stackoverflow.com/questions/2...-cross-browser

    Malhereusement il ne marche pas sur Firefox.
    J'ai trouvé une piste intéressante sur ce lien :
    https://developer.mozilla.org/fr/Tut...presse_papiers

    Malheureusement ca marche pas.

  2. #2
    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 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 638
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Quelques autres pistes
    http://www.jquery4u.com/plugins/jque...ard-4-options/

    Il existe aussi des possibilité avec flash ...
    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 !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bonjour
    Merci pour ta réponse qui est très intéressante mais le lien que tu m'as donné ne présente qu'une solution pour écrire dans le clipboard et je cherche en premier lieu a récupérer le contenu du presspapier afin de passer sa valeur dans ma fonction de clean.

    En modifiant légèrement le code que j'ai mis j'ai put obtenir a peut près ce que je veux, mais sur FireFox celui-ci présente encore quelques bug que je comprends pas trop.

    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
    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    onPaste = function(ID,e){
    	(ID == "") ? ID = e.srcElement.id : "";
    	var elem = document.getElementById(ID);
    	var copie;
    	var MonObjet;
    	var Selection;
    	var Range;
     
    	if(!document.all){
    		MonObjet = elem.contentWindow;
    		Selection = MonObjet.getSelection();
    		Range = Selection.getRangeAt(0);
    	}
    	else{
    		MonObjet = elem;
    		MonObjet.focus();
    		Selection = document.selection.createRange().text;
    		Range = document.selection.createRange();
    	}
    	SavedRange = Range;
     
    	var savedcontent;
    	(!$.browser.msie) ? savedcontent = elem.contentWindow.document.body.innerHTML : savedcontent = elem.innerHTML;
     
        if (e && e.clipboardData && e.clipboardData.getData) {// Webkit - get data from clipboard, put into editdiv, cleanup, then cancel event
            if (/text\/html/.test(e.clipboardData.types)) {
                copie = e.clipboardData.getData('text/html');
            }
            else if (/text\/plain/.test(e.clipboardData.types)) {
                copie = e.clipboardData.getData('text/plain');
            }
            else {
                copie = "";
            }
            waitforpastedata(elem, savedcontent);
            if (e.preventDefault) {
    			e.stopPropagation();
    			e.preventDefault();
            }
            return false;
        }
        else {// Everything else - empty editdiv and allow browser to paste content into it, then cleanup
    		(!$.browser.msie) ? elem.contentDocument.body.innerHTML = "" : $("#" + ID).html("");
            waitforpastedata(elem, savedcontent);
            return true;
        }
    }
    function waitforpastedata (elem, savedcontent){
    	(!$.browser.msie) ? newelem = elem.contentWindow.document.body : newelem = elem;
    	var Retour;
     
        if (newelem.childNodes && newelem.childNodes.length > 0){
            Retour = (processpaste(elem, savedcontent));
        }
        else {
            that = {
                e: elem,
                s: savedcontent
            }
            that.callself = function (){
                waitforpastedata(that.e, that.s)
            }
            setTimeout(that.callself,20);
        }
    }
    function processpaste (elem, savedcontent){
    	var pasteddata = elem.innerHTML || elem.contentWindow.document.body.innerHTML;
     
        //^^Alternatively loop through dom (elem.childNodes or elem.getElementsByTagName) here
     
    	(!$.browser.msie) ? elem.contentDocument.body.innerHTML = savedcontent : elem.innerHTML = savedcontent;
     
        // Do whatever with gathered data;
    	return pasteddata;
    }

Discussions similaires

  1. Code VBA pour copier-coller des colonnes d'un fichier Excel à un autre
    Par User Name dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2014, 23h30
  2. Réponses: 3
    Dernier message: 01/07/2009, 09h55
  3. probleme lors du copier\coller du code
    Par milki1 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 31/08/2007, 10h11
  4. Réponses: 3
    Dernier message: 26/08/2007, 23h36
  5. Comment faire Copier/Coller par code VBA sur INTERNET...
    Par GESCOM2000 dans le forum Access
    Réponses: 5
    Dernier message: 02/01/2006, 13h19

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