Problème avec la fonction "sélectionner le contenu"

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Problème avec la fonction "sélectionner le contenu"

Message par alv le Mar 14 Avr 2015 - 8:26

Bonjour,
Ce sujet fait suite à celui-ci qui reste sans réponse.

J'ai un souci avec la fonction "sélectionner le contenu" : je sélectionne le contenu d'un code en cliquant sur le lien "sélectionner le contenu", je copie la sélection, je colle la sélection et... problème. Ça colle le contenu avec 4 espaces avant le début de chaque ligne.

Comment corriger ce problème ?

Merci d'avance.


Le code js :
Code:
function selectCode(a){a=$(a).closest("dl").find(".cont_code,code")[0];if(window.getSelection){var c=window.getSelection();if(c.setBaseAndExtent)c.setBaseAndExtent(a,0,a,a.innerText.length-1);else{window.opera&&a.innerHTML.substring(a.innerHTML.length-4)=="<BR>"&&(a.innerHTML+=" ");var b=document.createRange();b.selectNodeContents(a);c.removeAllRanges();c.addRange(b)}}else document.getSelection?(c=document.getSelection(),b=document.createRange(),b.selectNodeContents(a),
        c.removeAllRanges(),c.addRange(b)):document.selection&&(b=document.body.createTextRange(),b.moveToElementText(a),b.select())}
       
        $(function(){
            $("dl.codebox:not(.spoiler,.hidecode)  > dd.code, dl.codebox:not(.spoiler,.hidecode)  > dd > code").closest("dl").find('dt').append('<span onClick="selectCode(this)" class="selectCode">Sélectionner</span>');
        });


Dernière édition par alv le Mer 22 Avr 2015 - 19:17, édité 1 fois

alv
# Tropactif #

Messages : 1080
Inscrit(e) le : 09/07/2012

http://urlz.fr/2OYC
alv a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème avec la fonction "sélectionner le contenu"

Message par Milouze14 le Mar 14 Avr 2015 - 18:03

Salut alv,
le script fonctionne parfaitement :

La preuve en image:

Lorsque tu cliques sur "Sélectionner le contenu:


Le code est bien sélectionné:



Tu colles le contenu directement dans un message, de mon côté il passe avant dans le bloc note de Windows
et les espaces disparaissent Wink .

a++




Milouze14
+ Hyperactif +

Masculin
Messages : 4563
Inscrit(e) le : 18/04/2005

http://www.milouze14.com/
Milouze14 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème avec la fonction "sélectionner le contenu"

Message par kiwi14637 le Mar 14 Avr 2015 - 18:24

Bonjour,

J'ai enfin compris votre problème.
Le javascript rajoute des tabulations quand on copie le code depuis Firefox (un test est effectué dans le js, vient sans doute de là).
L'éditeur supprime ces tabulations assez bizarrement et rajoute des espaces à la place (de mémoire).
Il faudrait demander à Ea ou trouver un autre code (celui-là semble d'ailleurs assez complexe).
Comme la messagerie d'Ea est fermée, il faudrait envoyer un Mp à un membre du staff pour qu'il le fasse suivre.

Bonne soirée !

Edit : J'ai également pensé à passer par le bloc-notes, comme ça vous enlevez les espaces.
Ou passer par Word (la tabulation est simple à enlever) et vous collez dans l'éditeur non WYSIWYG.

kiwi14637
# Tropactif #

Masculin
Messages : 1388
Inscrit(e) le : 19/05/2010

kiwi14637 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème avec la fonction "sélectionner le contenu"

Message par alv le Mar 14 Avr 2015 - 20:10

Bonjour Milouze14 et kiwi14637,

Merci pour votre aide.
Je vais contacter un membre du staff et je vous tiens au courant.

alv
# Tropactif #

Messages : 1080
Inscrit(e) le : 09/07/2012

http://urlz.fr/2OYC
alv a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème avec la fonction "sélectionner le contenu"

Message par kiwi14637 le Mar 14 Avr 2015 - 20:14

@alv a écrit:Bonjour Milouze14 et kiwi14637,

Merci pour votre aide.
Je vais contacter un membre du staff et je vous tiens au courant.
Ok ! Wink

kiwi14637
# Tropactif #

Masculin
Messages : 1388
Inscrit(e) le : 19/05/2010

kiwi14637 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème avec la fonction "sélectionner le contenu"

Message par alv le Ven 17 Avr 2015 - 8:22

Bonjour,
J'ai contacté un membre du staff et m'a dit qu'Ea n'a malheureusement pas le temps de s'en occuper, et d'upper pour avoir une réponse d'un membre.

@Milouze14 a écrit:Tu colles le contenu directement dans un message, de mon côté il passe avant dans le bloc note de Windows et les espaces disparaissent Wink .
@kiwi14637 a écrit:Edit : J'ai également pensé à passer par le bloc-notes, comme ça vous enlevez les espaces.
Ou passer par Word (la tabulation est simple à enlever) et vous collez dans l'éditeur non WYSIWYG.
Cette solution n'est pas évident à expliquer aux membres, donc je préfèrerai un code qui fonctionne. Si quelqu'un en connait un...

alv
# Tropactif #

Messages : 1080
Inscrit(e) le : 09/07/2012

http://urlz.fr/2OYC
alv a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème avec la fonction "sélectionner le contenu"

Message par kiwi14637 le Ven 17 Avr 2015 - 18:50

Bonjour,

Alors je vous conseiller de demander à Ange Tuteur. Il est également très fort en codage et est notamment présent sur le support anglais.

Bonne soirée et bonne chance !

kiwi14637
# Tropactif #

Masculin
Messages : 1388
Inscrit(e) le : 19/05/2010

kiwi14637 a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Problème avec la fonction "sélectionner le contenu"

Message par alv le Ven 17 Avr 2015 - 19:04

Bonsoir,
Merci pour le conseil, je vais le faire de ce pas.

alv
# Tropactif #

Messages : 1080
Inscrit(e) le : 09/07/2012

http://urlz.fr/2OYC
alv a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Problème avec la fonction "sélectionner le contenu"

Message par Ange Tuteur le Dim 19 Avr 2015 - 19:14

Bonsoir,

Remplacer le code JavaScript par :
Code:
function selectCode(a){a=$(a).closest("dl").find(".cont_code,code")[0];if(window.getSelection){var c=window.getSelection();if(c.setBaseAndExtent)c.setBaseAndExtent(a,0,a,a.innerText.length-1);else{window.opera&&a.innerHTML.substring(a.innerHTML.length-4)=="<BR>"&&(a.innerHTML+=" ");var b=document.createRange();b.setStart(a.childNodes[0], 0);b.setEnd(a, a.childNodes.length);c.removeAllRanges();c.addRange(b)}}else document.getSelection?(c=document.getSelection(),b=document.createRange(),b.selectNodeContents(a),c.removeAllRanges(),c.addRange(b)):document.selection&&(b=document.body.createTextRange(),b.moveToElementText(a),b.select())};
$(function(){$("dl.codebox:not(.spoiler,.hidecode)  > dd.code, dl.codebox:not(.spoiler,.hidecode)  > dd > code").closest("dl").find('dt').append('<span onClick="selectCode(this)" class="selectCode">Sélectionner</span>')});

Pour Range, j'ai remplacé b.selectNodeContents(a); par :
Code:
b.setStart(a.childNodes[0], 0);
b.setEnd(a, a.childNodes.length);

Ange Tuteur
****

Masculin
Messages : 476
Inscrit(e) le : 16/11/2013

https://github.com/SethClydesdale
Ange Tuteur a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème avec la fonction "sélectionner le contenu"

Message par alv le Mar 21 Avr 2015 - 14:13

Bonjour Ange Tuteur,
Merci beaucoup pour votre aide.

J'ai mis en place le code, mais ça n'a rien changé. Il y a toujours 4 espaces avant le début de chaque ligne en collant la copie.

alv
# Tropactif #

Messages : 1080
Inscrit(e) le : 09/07/2012

http://urlz.fr/2OYC
alv a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème avec la fonction "sélectionner le contenu"

Message par kiwi14637 le Mar 21 Avr 2015 - 19:00

@alv a écrit:Bonjour Ange Tuteur,
Merci beaucoup pour votre aide.

J'ai mis en place le code, mais ça n'a rien changé. Il y a toujours 4 espaces avant le début de chaque ligne en collant la copie.
Bonjour,

Le code marche parfaitement Ange Tuteur ! Smile

Alv : Vous avez ce code-ci :
Code:
function selectCode(a){a=$(a).closest("dl").find(".cont_code,code")[0];if(window.getSelection){var c=window.getSelection();if(c.setBaseAndExtent)c.setBaseAndExtent(a,0,a,a.innerText.length-1);else{window.opera&&a.innerHTML.substring(a.innerHTML.length-4)=="<BR>"&&(a.innerHTML+=" ");var b=document.createRange();b.selectNodeContents(a);c.removeAllRanges();c.addRange(b)}}else document.getSelection?(c=document.getSelection(),b=document.createRange(),b.selectNodeContents(a),c.removeAllRanges(),c.addRange(b)):document.selection&&(b=document.body.createTextRange(),b.moveToElementText(a),b.select())}$(function(){$("dl.codebox:not(.spoiler,.hidecode)  > dd.code, dl.codebox:not(.spoiler,.hidecode)  > dd > code").closest("dl").find('dt').append('<span onClick="selectCode(this)" class="selectCode">Sélectionner le contenu</span>');});
Sans doute dans un template.
Très beau forum sinon sauf pour la barre de rang "Administrateur".

Bonne soirée !

kiwi14637
# Tropactif #

Masculin
Messages : 1388
Inscrit(e) le : 19/05/2010

kiwi14637 a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Problème avec la fonction "sélectionner le contenu"

Message par Ea le Mar 21 Avr 2015 - 22:50

Bonjour,


Suite à la demande par message privé de kiwi, j'ai mis le code de Ange Tuteur à la place de celui dans le tutoriel ( en espérant que ça ne cause pas un problème sur un autre navigateur ).

Cordialement.

Ea
Aidactif
Aidactif

Messages : 23418
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Problème avec la fonction "sélectionner le contenu"

Message par alv le Mer 22 Avr 2015 - 19:16

Bonjour kiwi14637,

J'avais bien ce code dans un template (viewtopic_body).
En l'enlevant, ça marche parfaitement Very Happy

Merci à tous pour votre aide.
résolu

alv
# Tropactif #

Messages : 1080
Inscrit(e) le : 09/07/2012

http://urlz.fr/2OYC
alv a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum