2010-05-08 5 views
1

Je souhaite utiliser JavaScript pour nettoyer le texte copié de mon site.Supprimer le texte du texte copié

J'utilise des extraits comme ceci:

body { 
    vertical-align: middle; ➊ 
} 

Où indique un commentaire ➊ plus tard. Je veux que les lecteurs copient cet extrait et l'utilisent. J'ai donc besoin de supprimer ce marqueur Unicode. Comment puis-je accéder au texte copié et y apporter des modifications? J'ai envisagé de supprimer des marqueurs de l'extrait lorsque l'utilisateur clique dessus (souris), pour qu'elle puisse sélectionner le texte, le copier, puis restaurer les marqueurs, mais cela semble très long.

Répondre

2

Il suffit de mettre les marqueurs unicode dans les balises de portée, et de mettre l'affichage aucun sur eux lorsque l'utilisateur clique

body { 
    vertical-align: middle; <span class="marker">➊</span> 
} 

Et faites ceci dans jQuery

$('.code') 
    .mousedown(function() { 
     $(this).find('.marker').css('display','none'); 
    }) 
    .mouseleave(function() { 
     $(this).find('.marker').css('display','inline'); 
    }); 

En prime, vous pourriez alors appliquer le style suivant aux .marker éléments:

​.marker 
{ 
    position:absolute; 
    right:0; 
}​ 
+0

IMHO cela semble être le moyen le plus raisonnable! +1 –

+0

Avez-vous testé avec succès? Je ne peux pas le faire fonctionner (je suis compétent avec JavaScript, donc le code s'exécute mais je copie toujours des marqueurs.) – riddle

+0

http://www.jsfiddle.net/92En5/ Fonctionne définitivement en chrome. Peut-être pas dans les autres – Eric

0

juste définir les marqueurs dans le commentaire? donc il ne fait pas de mal lorsqu'il est utilisé après la copie

+0

Bravo pour l'idée, mais ce n'est pas ce que je cherche. – riddle

1

Vous pouvez transformer le marqueur Unicode en une image, car les images sont ignorées lors de la copie de texte brut.

+0

C'est en fait quelque chose que je pourrais essayer. Merci! – riddle

0

Il y a un oncopy gestionnaire, mais je doute qu'il soit largement supporté. Il existe également des gestionnaires d'événements de sélection comme onselectstart (encore une fois, différents pour les différents navigateurs) et divers attributs pour rendre une partie du texte non sélectionnable, comme -moz-user-select: none (encore une fois, pas cross-browser). Vous êtes probablement mieux d'utiliser des marqueurs positionnés de façon absolue ou de rendre le marqueur inaccessible via l'index z.

+0

Sélection par l'utilisateur: aucun ne fonctionne dans Mozilla et WebKit et oui, il ne sélectionne pas de marqueurs. Mais ils sont copiés de toute façon. : / – riddle

Questions connexes