11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je veux que le clic sur un bouton copie dans le presse-papier le contenu d’un champ texte.
Avec internet explorer 7 j’utilise la méthode obj.createTextRange pour sélectionner le contenu d’un champ texte. Hélas cette méthode est propriétaire. Existe-t-il une méthode standard qui marcherait sur les autres navigateurs ?
J’ai essayé obj.createRange sans succès sous firefox11, le texte est sélectionné mais la console javascript indique l’erreur «obj.createRange is not a function».

Voici mon code :
<!DOCTYPE html><html lang="fr"><head><meta charset="utf-8"/><title>Test copier-coller</title></head><body><textarea id="entree">Voici un texte que je voudrais copier dans le presse-papier</textarea><button id="copier">Copier dans le presse-papier</button><script type="text/javascript"><!--
			function copier() {
				"use strict";
				var range, obj;
				obj = document.getElementById("entree");
				if (document.createRange) { // tous les navigateurs, sauf IE avant la version 9
					range = obj.createRange();
				} else { // Internet Explorer avant la version 9
					range = obj.createTextRange();
				}
				range.execCommand("Copy");
				range = "";
			}
			window.onload =  function () {
				"use strict";
				document.getElementById("copier").onclick = function () {
					copier();
				};
				document.getElementById("copier").onkeyup = function () {
					copier();
				};
			};
			//-->
		</script>
	</body>
</html>


Merci pour vos réponses.
Modifié par adrien881 (20 Apr 2012 - 09:49)