lien "Code: Tout sélectionner"

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

Modérateurs : Papy.G, fneck, Carl

__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

lien "Code: Tout sélectionner"

Message par __sam__ »

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.
Dernière modification par __sam__ le 19 août 2015 20:11, modifié 1 fois.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
meridian
Messages : 1226
Inscription : 01 sept. 2014 13:10
Localisation : Seine-Saint-Denis

Re: lien "CODE: tout selectionner"

Message par meridian »

Je viens de faire le test, tout pareil. Ça le fait pas avec IE, ni Chrome
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: lien "Code: Tout sélectionner"

Message par Daniel »

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 : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: lien "Code: Tout sélectionner"

Message par __sam__ »

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+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: lien "Code: Tout sélectionner"

Message par __sam__ »

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+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: lien "Code: Tout sélectionner"

Message par __sam__ »

__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+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Répondre