Exemple de code d'opération de copie H5
Au début, il n'y avait aucun contenu accessible à clipborad sur le web. Dans le passé, nous ne pouvions utiliser Flash que si nous souhaitions effectuer un copier/coller/couper. Mais voilà, le grand H5 ou W3C a lancé une ébauche sur le presse-papier de contrôle du H5. Les plus connues sont les deux API :
document.execCommand() ClipboardEvent
Découvrons-les étape par étape. Examinons d’abord l’utilisation du classique execCommand.
Opération de copie
copie d'entrée
Nous devons d'abord comprendre le processus de copie de base :
sélectionner
Copier ( command + c || ctrl + c)
execCommand suit également ce processus pour obtenir cet effet. Si nous voulons utiliser execCommand pour effectuer une copie, nous devons d'abord sélectionner l'élément que vous souhaitez copier.
Ici, une nouvelle API, window.getSelection(), sera également utilisée. Plus précisément :
getSelection() : utilisé pour obtenir le contenu de l'élément actuellement sélectionné. De manière générale, vous utilisez la souris pour sélectionner le contenu de la page.
toString() : Utilisé pour changer directement le contenu sélectionné en texte.
L'utilisation de base est :
// Afficher le texte sélectionné
window.getSelection().toString();
Nous utilisons généralement cette API uniquement pour les fonctions auxiliaires. L'approche la plus courante consiste à créer dynamiquement des éléments d'entrée, puis à spécifier dynamiquement input[value]. Exécutez select(), select, puis exécutez copy.
# Le code total est
function copyContent(elementId) { // 动态创建 input 元素 var aux = document.createElement("input"); // 获得需要复制的内容 aux. set Attribute("value", document.getElementById(elementId).innerHTML); // 添加到 DOM 元素中 document.body.app end Child(aux); // 执行选中 // 注意: 只有 input 和 textarea 可以执行 select() 方法. aux.select(); // 获得选中的内容 var content = window.getSelection().toString(); // 执行复制命令 document.execCommand("copy"); // 将 input 元素移除 document.body.removeChild(aux); }
Regardez un exemple
Copiez-le comme vous le souhaitez
Bien sûr, si vous ne le faites pas Si vous ne souhaitez pas ajouter des éléments d'entrée de manière dynamique, si vous souhaitez copier directement l'élément DOM spécifié, que devez-vous faire ? Ici, vous devez utiliser la méthode liée à createRange() nouvellement fournie par HTML5. Bien sûr, getSelection() ci-dessus en fait également partie. Les API utilisées sont :
document.createRange() : utilisée pour créer un conteneur sélectionné. Renvoie une plage Objet. La compatibilité de cette API est également très bonne et elle est prise en charge aussi bien par les téléphones mobiles que par les PC.
selectNode(DOM) : renvoie la méthode montée sur l'objet de plage. Utilisé pour ajouter des éléments sélectionnés. Un seul
window.getSelection()
addRange(range) peut être ajouté : cette méthode est montée sous la méthode getSelection() et est utilisée pour effectuer la sélection d'éléments. (! Très important)
C'est toute l'API ci-dessus :
Regardez simplement la démo
Ici, je posterai le code clé :
var copyDOM = document.querySelector('#selector'); var range = document.createRange(); // 选中需要复制的节点 range.selectNode(copyDOM); // 执行选中元素 window.getSelection().addRange(range); // 执行 copy 操作 var successful = document.execCommand('copy'); try { var msg = successful ? 'successful' : 'unsuccessful'; console.log('copy is' + msg); } catch(err) { console.log('Oops, unable to copy'); } // 移除选中的元素 window.getSelection().remove All Ranges();
Un rappel supplémentaire ici est que l'opération de copie ci-dessus ne peut pas être effectuée automatiquement. Autrement dit, les comportements interactifs tels que la copie ne peuvent pas être exécutés sans aucune interaction de l'utilisateur. Par conséquent, l'événement click doit être utilisé ici (bien sûr, vous pouvez également utiliser d'autres événements à la place).
Utiliser le presse-papiers pour copier
Tout d'abord, le presse-papiers a été proposé récemment, sa compatibilité a donc encore besoin de temps pour être vérifiée. La compatibilité actuelle consiste à prendre en charge certains événements simples.
Si votre navigateur prend en charge le constructeur ClipboardEvent. L’opération de copie devient alors extrêmement simple.
// Bien entendu, le code suivant doit être placé en cas de clic d'une interaction.
var copyEvent = new ClipboardEvent('copy', { dataType: 'text/plain', data: 'My string' }); document.dispatchEvent(copyEvent);
Sinon, vous ne pouvez utiliser que l'API event.clipboardData renvoyée dans l'événement de copie du document pour définir ou obtenir les informations pertinentes. Nous obtenons l'objet clipboardData uniquement via des rappels d'événements :
e.clipboardData : ne peut être obtenu que via l'événement copier/coller/couper sur le document
document.addEvent List ener('copy', function(e){ // 设置信息,实现复制 e.clipboardData.setData('text/plain', 'Hello, world!'); e. prev entDefault(); });
clipboardData : Cet obj monte également deux API couramment utilisées au format
: qui est le type MIME de base. Le plus couramment utilisé est text/plain. Pour un contenu spécifique, veuillez vous référer aux références MIME
data : Il s'agit du contenu de données spécifique inséré correspondant au type MIME
setData(format, data) : Définir les informations de données associées, principalement utilisées pour copier et couper les événements liés.
getData(format) : Généralement utilisé dans les événements de collage. Utilisé pour obtenir le contenu du presse-papiers. Cependant, vous devez définir le format de décodage correct (c'est-à-dire définir le type MIME correct). De plus, cette méthode ne peut être utilisée que dans l’événement Paste.
Ce qui précède semble être une brève introduction à l'API, puis je parlerai formellement de quelques informations pratiques. Si vous utilisez clipboardData pour implémenter un contenu de copie personnalisé. De cette façon, vous pouvez non seulement copier du texte simple sur la page, mais également copier des imagesinformations, etc.
Regardez le code
// Lier les événements interactifs sur le DOM spécifié
DOM.addEventListener('click',function(){},false){ // 添加 copy 内容 document.addEventListener('copy',function copy (e) { msg = `<${msg}/>`; e.clipboardData.setData('text/plain', msg); e.preventDefault(); }) // 执行 copy 命令 document.execCommand('copy'); // 移除绑定事件 document.removeEventListener('copy','copy'); }
couper et coller Related
Il semble également comme avant Assez simple. Bien sûr, certains étudiants peuvent se demander : n’existe-t-il pas d’autres événements tels que le copier-coller ? Est-il possible de faire la même chose ?
Euh...
Au début, je le pensais aussi, mais la réalité te donne souvent une douce caresse. Parce que, afin de vous empêcher d'obtenir des informations utilisateur de manière malveillante, dans Chrome, d'une manière générale, vous ne pouvez pas déclencher l'événement coller via document.execCommand('paste'). Cependant, dans la version mobile, la règle est que vous pouvez déclencher le copier-coller dans les éléments modifiables, mais la copie ne peut être déclenchée que dans les éléments sélectionnés valides.
根据上面的说法,我们可以通过利用 paste 的相关方法,来具体应用到实践中。比如,防止用户粘贴信息。这特别适用于那些做题页面,防止你查资料然后 copy 相关答案。
document.addEventListener('paste',function copy (e) { e.preventDefault(); }); 当然,还有更狠的,直接禁止 copy,paste,cut 事件。 ['cut', 'copy', 'paste'].forEach((event)=>{ document.addEventListener(event, (e)=>{ e.preventDefault(); });});
方案总结
HTML5 现在能完美提供给我们的应该就是 copy 事件的使用,对于市面上的 clipboard.js 差不多也是运用上述的知识点。根据上面的描述,可以了解到,想要实现复制功能有三种渐进退化方案。以下兼容性由高到低:
input 模式
createRange
clipboard 直接操作
现在 React 比较火,这里我简单的写了一个 copybtn 组件。具体的使用 README 已经写清楚了,如果有什么不懂的地方可以 @我。
【相关推荐】
1. 免费h5在线视频教程
2. HTML5 完整版手册
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Nous, les utilisateurs, devrions pouvoir comprendre la diversité de certaines fonctions lors de l'utilisation de cette plateforme. Nous savons que les paroles de certaines chansons sont très bien écrites. Parfois, nous l'écoutons même plusieurs fois et sentons que le sens est très profond. Donc, si nous voulons en comprendre le sens, nous voulons le copier directement et l'utiliser comme copywriting. Cependant, si nous voulons l'utiliser, nous le faisons. il vous reste encore besoin d'apprendre à copier des paroles. Je pense que vous n'avez tous aucune expérience de ces opérations, mais il est en effet un peu difficile de les utiliser sur votre téléphone portable. Donc, afin de vous donner une meilleure compréhension, aujourd'hui. l'éditeur est là pour vous aider. Une bonne explication de certaines des expériences d'exploitation ci-dessus. Si vous l'aimez également, venez jeter un œil avec l'éditeur.

Support Vector Machine (SVM) en Python est un puissant algorithme d'apprentissage supervisé qui peut être utilisé pour résoudre des problèmes de classification et de régression. SVM fonctionne bien lorsqu'il s'agit de données de grande dimension et de problèmes non linéaires, et est largement utilisé dans l'exploration de données, la classification d'images, la classification de textes, la bioinformatique et d'autres domaines. Dans cet article, nous présenterons un exemple d'utilisation de SVM pour la classification en Python. Nous utiliserons le modèle SVM de la bibliothèque scikit-learn

H5 fait référence à HTML5, la dernière version de HTML. H5 est un langage de balisage puissant qui offre aux développeurs plus de choix et d'espace créatif. Son émergence favorise le développement de la technologie Web et rend l'interaction et l'effet des pages Web plus excellents. mûrit progressivement et devient populaire, je pense qu'il jouera un rôle de plus en plus important dans le monde d'Internet.

Dans les touches de raccourci du calque de copie PS, nous pouvons savoir que si vous souhaitez copier un calque lors de l'utilisation de PS, vous pouvez utiliser la touche de raccourci [Ctrl+J] pour une copie rapide. Cette introduction aux touches de raccourci pour copier des calques peut vous indiquer la méthode de fonctionnement spécifique. Voici le contenu détaillé, alors jetez-y un œil. Réponse de la touche de raccourci du calque de copie PS : [Ctrl+J] Méthode spécifique : 1. Ouvrez l'image dans PS et sélectionnez le calque qui doit être copié. 2. Appuyez simultanément sur [Ctrl+J] sur le clavier pour terminer la copie du calque. Autres méthodes de copie : 1. Après avoir ouvert l'image, maintenez le calque enfoncé et déplacez l'icône [Nouveau calque] vers le bas. 2. Après être passé à l'icône, lâchez prise. 3. La copie des calques est terminée.

Lorsque de nombreux utilisateurs utilisent des ordinateurs, s'ils rencontrent quelque chose qui doit être copié et collé, il est très difficile de copier avec la souris. Alors, comment utiliser les touches de raccourci pour copier et coller ? Raccourci Copier et Coller Comment utiliser la touche : 1. Touche Copier : Ctrl+C, sélectionnez le texte ou l'image à copier et appuyez sur la touche de raccourci. 2. Touche Coller : Ctrl+V Appuyez simplement sur la touche de raccourci directement à l'endroit où vous souhaitez coller.

Sur les systèmes Windows, la touche de raccourci pour copier est Ctrl+C ; sur les systèmes Apple, la touche de raccourci pour copier est Commande+C ; sur les systèmes Linux, la touche de raccourci pour copier est Ctrl+Shift+C. Connaître ces touches de raccourci peut améliorer l'efficacité du travail de l'utilisateur et faciliter les opérations de copie de texte ou de fichiers.

Nous utilisons souvent Excel pour traiter plusieurs données de tableau. Après avoir copié et collé le tableau défini, le format d'origine revient au format par défaut et nous devons le réinitialiser. En fait, il existe un moyen de faire en sorte que le tableau de copie Excel conserve le format d'origine. L'éditeur vous expliquera la méthode spécifique ci-dessous. 1. Étapes de l'opération de glissement et de copie de la touche Ctrl : utilisez la touche de raccourci [Ctrl+A] pour sélectionner tout le contenu du tableau, puis déplacez le curseur de la souris vers le bord du tableau jusqu'à ce que le curseur mobile apparaisse. Appuyez et maintenez la touche [Ctrl], puis faites glisser le tableau vers la position souhaitée pour terminer le déplacement. Il convient de noter que cette méthode ne fonctionne que sur une seule feuille de calcul et ne peut pas être déplacée entre différentes feuilles de calcul. 2. Étapes de collage sélectif : appuyez sur la touche de raccourci [Ctrl+A] pour sélectionner tous les tableaux, puis appuyez sur

Vue est un framework JavaScript populaire qui fournit une fonction glisser-déposer pratique, nous permettant de copier et de déplacer facilement des éléments. Voyons ensuite comment copier et déplacer des éléments par glisser-déposer dans Vue. 1. Implémentation de base des éléments glisser-déposer Pour copier et déplacer des éléments glisser-déposer dans Vue, vous devez d'abord implémenter la fonction glisser-déposer de base de l'élément. La méthode spécifique d'implémentation est la suivante : Ajoutez les éléments qui doivent être glissés dans le modèle : <divclass="drag-elem"
