2011-08-09 3 views
1

J'ai essayé de développer un éditeur de texte (en tant que projet personnel) en utilisant HTML5 toile, mais j'ai rencontré des problèmes avec l'implémentation de copier/coller/retour arrière. J'ai étudié le code source d'environ une demi-douzaine de projets comme celui-ci, mais je n'ai toujours pas trouvé de solution.Editeur de canevas - Comment?

Quelqu'un peut-il recommander un moyen rapide et efficace pour mettre en œuvre ce genre de fonctionnalité?

+3

réponse courte, ne le font pas. Canvas est totalement inapproprié pour une utilisation en tant qu'éditeur de texte. Voir [la réponse de Simon Sarris ici] (http://stackoverflow.com/questions/6336243/using-a-canvas-element-as-a-textarea/6345055#6345055) – Alohci

+0

Comme je l'ai dit, c'est un projet personnel, donc n'a pas vraiment d'importance si c'est une bonne idée ou non. – Alexander

Répondre

5

Nous utilisons de cette façon: le focus est dans la zone de texte cachée, donc ctrl-v fonctionne correctement. Au changement de texte, vous changez votre image de toile. Vous pouvez facilement synchroniser la sélection. Vous pouvez lier textarea événement « d'entrée » pour attraper tous les changements:

Entrée: Cet événement est envoyé lorsqu'un utilisateur saisit du texte dans une zone de texte. Cet événement n'est appelé que lorsque le texte affiché change, il n'est donc pas appelé lorsque l'utilisateur appuie sur des touches non affichables.

Je pense que, c'est la meilleure et la seule bonne façon (vous ne pouvez pas travailler avec le presse-papiers en javascript sans)

+0

Cela pourrait juste fonctionner. Je vais devoir l'essayer. Merci. – Alexander

+0

Que voulez-vous dire par "hidden textarea"? Devrais-je définir l'affichage de la propriété CSS: hidden; ? Puis-je le faire sans ajouter de textarea à l'arbre des éléments? –