lien "Code: Tout sélectionner"

Ici c'est moi qui vous informe de la vie du site et du forum.

Modérateurs : Carl, Papy.G, fneck

Répondre
__sam__
Messages : 3991
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

lien "Code: Tout sélectionner"

Message par __sam__ » 19 août 2015 20:06

Dans les zones contenant du texte "verbatim" via le tag: code dans ce forum, il y a un lien/ bouton: "Code: Tout sélectionner". Exemple:

Code : Tout sélectionner

test1
test2
Je l'utilise fréquemment pour copier/coller des codes.

Normalement la selection via le lien/bouton suivi d'un ctrl-c recopie l'intégralité de la zone telle qu'elle. Mais avec ma dernière mise à jour de firefox (40.0.2), il me fait précéder chaque ligne de 4 caractères espace dans le presse papier! Ca donne ceci:

Code : Tout sélectionner

    test1
    test2
C'est vraiment pas bon quand le code source n'aime pas les blancs en début de ligne (python, où même les symbole EOF de perl).

Observez vous ca chez vous avec votre browser?

De ce que je vois c'est une fonction JS qui appelle copyCode(this). C'est peut-être un bug avec phpbb et le tout dernier firefox.
Modifié en dernier par __sam__ le 19 août 2015 20:11, modifié 1 fois.
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

Avatar du membre
meridian
Messages : 621
Enregistré le : 01 sept. 2014 13:10
Localisation : Seine-Saint-Denis

Re: lien "CODE: tout selectionner"

Message par meridian » 19 août 2015 20:10

Je viens de faire le test, tout pareil. Ça le fait pas avec IE, ni Chrome

Daniel
Messages : 10326
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: lien "Code: Tout sélectionner"

Message par Daniel » 19 août 2015 20:59

Pareil pour moi avec Firefox 40.0.2. En revanche si on sélectionne manuellement tout le texte, il n'y a pas d'espaces ajoutés. Ce n'est pas très pratique, mais c'est un contournement possible du bug.
Daniel
L'obstacle augmente mon ardeur.

__sam__
Messages : 3991
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: lien "Code: Tout sélectionner"

Message par __sam__ » 19 août 2015 21:19

Oui pour le contournement: il ne faut pas que le texte à copier soit trop long. Avec la sélection manuelle on a vite oublié une paire de lignes au début ou à la fin.

Le fait que le contournement existe indique que c'est la routine java-script copyCode() qui pose problème. Le fait que ca ne le fait pas sous IE ni Chrome (et dérivés: opéra), indique un code spécifique dans copyCode() pour FF.

Autre contournement possible: installer cet add-on: https://addons.mozilla.org/fr/firefox/a ... serprofile
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

__sam__
Messages : 3991
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: lien "Code: Tout sélectionner"

Message par __sam__ » 19 août 2015 21:29

En utilisant le débugger de FF, j'ai trouvé dans forum_fn.js le code suivant:

Code : Tout sélectionner

function selectCode(a)
{
	// Get ID of code block
	var e = a.parentNode.parentNode.getElementsByTagName('CODE')[0];

	// Not IE
	if (window.getSelection)
	{
		var s = window.getSelection();
		// Safari
		if (s.setBaseAndExtent)
		{
			s.setBaseAndExtent(e, 0, e, e.innerText.length - 1);
		}
		// Firefox and Opera
		else
		{
			// workaround for bug # 42885
			if (window.opera && e.innerHTML.substring(e.innerHTML.length - 4) == '<BR>')
			{
				e.innerHTML = e.innerHTML + '&nbsp;';
			}

			var r = document.createRange();
			r.selectNodeContents(e);
			s.removeAllRanges();
			s.addRange(r);
		}
	}
	// Some older browsers
	else if (document.getSelection)
	{
		var s = document.getSelection();
		var r = document.createRange();
		r.selectNodeContents(e);
		s.removeAllRanges();
		s.addRange(r);
	}
	// IE
	else if (document.selection)
	{
		var r = document.body.createTextRange();
		r.moveToElementText(e);
		r.select();
	}
}
Il y a effectivement du code spécifique par browser...
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

__sam__
Messages : 3991
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: lien "Code: Tout sélectionner"

Message par __sam__ » 20 août 2015 11:21

__sam__ a écrit :Autre contournement possible: installer cet add-on: https://addons.mozilla.org/fr/firefox/a ... serprofile
Ce matin AVAST vient de me le désinstaller en me signalant qu'il a mauvaise réputation (hum... allez savoir ce que ca veut dire une réputation sur internet)
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

Répondre