de http://codemirror.net/doc/manual.html , je ne trouve que getrange () code>,
annuler (), redo () etc., et je ne trouve pas la coupe (), copier () et coller API,
Et plus quand j'essaie d'exécuter
Editor.execcommand ("Cut") code>, je reçois l'erreur.
Pourriez-vous m'aider? Merci! P>
3 Réponses :
Il n'y a pas d'API de Codemirror pour couper / copier / coller, car les restrictions de sécurité du navigateur interdisent JavaScript de l'accès au presse-papiers par programmation. La pâte pourrait être utilisée pour voler des données privées et la coupe / copie peut être utilisée comme Plus vecteur d'attaque élaboré . p>
Les propulsements de code natif du navigateur les gestes em> les gestes qui accèdent au presse-papier (raccourcis clavier et éléments de menu contextuel), basés uniquement sur le texte actuellement sélectionné ou le champ de texte ciblé. P>
Ce siffir A un bon résumé des tentatives de contourner ces restrictions. L'approche de Codemirror est la première balle: il utilise une texture cachée pour que les gestes de presse-papiers utilisent des gestes de presse-papiers, mais cela ne prend toujours pas en charge les API programmatiques. P>
mais là est em> une solution de contournement partielle: utilisez un petit widget Flash (il s'agit de la 2ème balle dans le fil ci-dessus). Flash Détende les restrictions sur copie / Couper (mais pas coller) un peu. Il doit encore être déclenché par certains événement utilisateur em>, mais cela pourrait être quelque chose comme cliquer sur un bouton de votre UI HTML. Wrappers comme Zeroclipboard et
Malheureusement, Codemiror ne semble pas bien interopérer avec Android / Chrome. Plus précisément, le robinet long à sélectionner ne fonctionne pas, il n'est donc pas possible de copier du texte.
Est-il possible de copier également le style MarkUp / CSS avec elle, de sorte que mon type de code de syntaxe de couleur sympa est préservé lors de la copie par exemple sur le mot?
@Jan qui serait une copie du format RTF (riche texte). Je ne suis pas sûr s'il le supporte pour le moment. Cet exemple utilise le presse-papiers.js et Codemirror, de sorte que le formatage utilisé par Codemirror est une couche supérieure à ce mécanisme de copie.
Ajouter une DIV contentiable cachée à votre wrapper Editeur Textarea. Distenditable DIVS Respectez de nouvelles lignes et onglets, que nous avons besoin lors de la copie de code.
@nourza Merci, on dirait que l'API du presse-papiers a été bloquée ici. non capturé (en promesse) Domexception: l'API du presse-papiers a été bloquée en raison d'une stratégie de fonctionnalité appliquée au document actuel. Code>
Stackoverflow.com/Questtions/13929371/...