Heim Web-Frontend H5-Tutorial Beispielcode für den H5-Kopiervorgang

Beispielcode für den H5-Kopiervorgang

May 12, 2017 pm 12:02 PM

Anfangs gab es im Web keine für Clipborad zugänglichen Inhalte. In der Vergangenheit konnten wir Flash nur verwenden, wenn wir kopieren/einfügen/ausschneiden wollten. Aber jetzt hat das große H5 bzw. W3C einen Entwurf für die H5-Steuerungszwischenablage veröffentlicht. Am bekanntesten sind die beiden APIs:

document.execCommand()
ClipboardEvent
Nach dem Login kopieren

Lernen wir sie Schritt für Schritt kennen. Schauen wir uns zunächst die Verwendung des klassischen execCommand an.

Kopiervorgang

Eingabekopie

Wir müssen zuerst den grundlegenden Kopiervorgang verstehen:

wählen Sie

Kopieren ( command + c ||. ctrl + c)

execCommand folgt ebenfalls diesem Prozess, um diesen Effekt zu erzielen. Wenn wir execCommand zum Kopieren verwenden möchten, sollten wir zuerst das Element auswählen, das Sie kopieren möchten.
Hier wird auch eine neue API, window.getSelection(), verwendet. Konkret:

getSelection(): wird verwendet, um den Inhalt des aktuell ausgewählten Elements abzurufen. Im Allgemeinen verwenden Sie die Maus, um den Inhalt auf der Seite auszuwählen.

toString(): Wird verwendet, um den ausgewählten Inhalt direkt in Text umzuwandeln.

Die grundlegende Verwendung ist:

// Den ausgewählten Text ausgeben

window.getSelection().toString();
Nach dem Login kopieren

Im Allgemeinen verwenden wir diese API nur für Hilfsfunktionen. Der gebräuchlichste Ansatz besteht darin, Eingabeelemente dynamisch zu erstellen und dann Eingabe[Wert] dynamisch anzugeben. Führen Sie select() aus, wählen Sie aus und führen Sie dann den Kopiervorgang aus.

# Der Gesamtcode lautet

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);
}
Nach dem Login kopieren

Sehen Sie sich ein Beispiel an

Kopieren Sie es nach Belieben

Natürlich, wenn Sie es nicht tun Wenn Sie keine Eingabeelemente dynamisch hinzufügen möchten, was sollten Sie tun, wenn Sie das angegebene DOM-Element direkt kopieren möchten? Hier müssen Sie die von HTML5 neu bereitgestellte Methode createRange() verwenden. Natürlich ist auch getSelection() oben eines davon. Die verwendeten APIs sind:

document.createRange(): wird zum Erstellen eines ausgewählten Containers verwendet. Gibt einen Bereich Objekt zurück. Auch die Kompatibilität dieser API ist sehr gut und wird sowohl von Mobiltelefonen als auch von PCs unterstützt.

selectNode(DOM): Gibt die auf dem Bereichsobjekt gemountete Methode zurück. Wird zum Hinzufügen ausgewählter Elemente verwendet. Es kann nur ein

window.getSelection()

addRange(range) hinzugefügt werden: Diese Methode wird unter der Methode getSelection() gemountet und wird zur Elementauswahl verwendet. (! Sehr wichtig)

Das ist die ganze API oben:

Sehen Sie sich einfach die Demo an

Hier poste ich den Schlüsselcode:

  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();
Nach dem Login kopieren

Eine zusätzliche Erinnerung hier ist, dass der obige Kopiervorgang nicht automatisch durchgeführt werden kann. Das heißt, interaktive Verhaltensweisen wie das Kopieren können nicht ohne Benutzerinteraktion ausgeführt werden. Daher muss hier das Click--Ereignis verwendet werden (natürlich können Sie stattdessen auch andere Ereignisse verwenden).

Zum Kopieren die Zwischenablage verwenden

Zuallererst wurde die Zwischenablage kürzlich vorgeschlagen, daher muss ihre Kompatibilität noch auf die Überprüfung warten. Die aktuelle Kompatibilität dient der Unterstützung einiger einfacher Ereignisse.
Wenn Ihr Browser ClipboardEvent Constructor unterstützt. Dann wird der Kopiervorgang extrem einfach.

// Natürlich sollte der folgende Code im Click-Event einer Interaktion platziert werden.

var copyEvent = 
new
 ClipboardEvent('copy', {
            dataType: 'text/plain',
            data: 'My string'
        });
        document.dispatchEvent(copyEvent);
Nach dem Login kopieren

Wenn nicht, können Sie nur die API „event.clipboardData“ verwenden, die im Kopierereignis des Dokuments zurückgegeben wird, um die relevanten Informationen festzulegen oder abzurufen. Wir erhalten das ClipboardData -Objekt nur durch Ereignisrückrufe:

e.clipboardData: kann nur durch das Kopieren/Einfügen/Ausschneiden-Ereignis für das Dokument

document.addEvent
List
ener('copy', function(e){
    // 设置信息,实现复制
    e.clipboardData.setData('text/plain', 'Hello, world!');
    e.
prev
entDefault(); 
});
Nach dem Login kopieren

erhalten werden clipboardData: Dieses Objekt mountet auch zwei häufig verwendete APIs

Format: das ist der grundlegende MIME-Typ. Am häufigsten wird Text/Plain verwendet. Spezifische Inhalte finden Sie in den MIME-Referenzen.

Daten: Hierbei handelt es sich um den spezifischen Dateninhalt, der dem MIME-Typ entspricht.

setData(format, data): Legen Sie verwandte Dateninformationen fest, die hauptsächlich verwendet werden für Veranstaltungen zum Thema Kopieren und Ausschneiden.

getData(format): Wird im Allgemeinen in Einfügeereignissen verwendet. Wird verwendet, um den Inhalt der Zwischenablage abzurufen. Sie müssen jedoch das richtige Decodierungsformat (d. h. den richtigen MIME-Typ) einstellen. Außerdem kann diese Methode nur im Paste-Ereignis verwendet werden.

Das Obige scheint eine kurze Einführung in die API zu sein, und dann werde ich offiziell über einige praktische Informationen sprechen. Wenn Sie clipboardData verwenden, um benutzerdefinierte Kopierinhalte zu implementieren. Auf diese Weise können Sie nicht nur einfachen Text auf der Seite kopieren, sondern auch BilderInformationen usw. kopieren.

Sehen Sie sich den Code an

// Binden Sie interaktive Ereignisse an das angegebene DOM

DOM.addEventListener('click',function(){},false){
    // 添加 copy 内容
    document.addEventListener('copy',function copy (e) {
            msg = `<${msg}/>`;
            e.clipboardData.setData(&#39;text/plain&#39;, msg);
            e.preventDefault();
        })
    // 执行 copy 命令
    document.execCommand(&#39;copy&#39;);
    // 移除绑定事件
    document.removeEventListener(&#39;copy&#39;,&#39;copy&#39;);
}
Nach dem Login kopieren

Ausschneiden und Einfügen Verwandtes

Es sieht auch so aus wie zuvor Ganz einfach. Natürlich denken einige Schüler vielleicht: Gibt es nicht auch andere Ereignisse wie Ausschneiden und Einfügen? Ist es möglich, dasselbe zu tun?
Ähm...
Zuerst dachte ich das auch, aber die Realität streichelt einen oft sanft. Denn um zu verhindern, dass Sie böswillig Benutzerinformationen abrufen, können Sie in Chrome im Allgemeinen das Einfügeereignis nicht über document.execCommand ('paste') auslösen. In der mobilen Version gilt jedoch die Regel, dass Sie das Ausschneiden und Einfügen in bearbeitbaren Elementen auslösen können, das Kopieren jedoch nur in gültigen ausgewählten Elementen.

根据上面的说法,我们可以通过利用 paste 的相关方法,来具体应用到实践中。比如,防止用户粘贴信息。这特别适用于那些做题页面,防止你查资料然后 copy 相关答案。

document.addEventListener(&#39;paste&#39;,function copy (e) {            e.preventDefault();        });
当然,还有更狠的,直接禁止 copy,paste,cut 事件。
[&#39;cut&#39;, &#39;copy&#39;, &#39;paste&#39;].forEach((event)=>{    document.addEventListener(event, (e)=>{        e.preventDefault();    });});
Nach dem Login kopieren

方案总结

HTML5 现在能完美提供给我们的应该就是 copy 事件的使用,对于市面上的 clipboard.js 差不多也是运用上述的知识点。根据上面的描述,可以了解到,想要实现复制功能有三种渐进退化方案。以下兼容性由高到低:

input 模式

createRange

clipboard 直接操作

现在 React 比较火,这里我简单的写了一个 copybtn 组件。具体的使用 README 已经写清楚了,如果有什么不懂的地方可以 @我。

【相关推荐】

1. 免费h5在线视频教程

2. HTML5 完整版手册

3. php.cn原创html5视频教程

Das obige ist der detaillierte Inhalt vonBeispielcode für den H5-Kopiervorgang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So kopieren Sie Liedtexte von QQ Music. So kopieren Sie Liedtexte So kopieren Sie Liedtexte von QQ Music. So kopieren Sie Liedtexte Mar 12, 2024 pm 08:22 PM

Wir Benutzer sollten in der Lage sein, die Vielfalt einiger Funktionen zu verstehen, wenn wir diese Plattform nutzen. Wir wissen, dass die Texte einiger Songs sehr gut geschrieben sind. Manchmal hören wir es sogar mehrmals und haben das Gefühl, dass die Bedeutung sehr tiefgreifend ist. Wenn wir die Bedeutung verstehen möchten, möchten wir sie jedoch direkt kopieren und als Text verwenden Sie müssen nur lernen, wie man Liedtexte kopiert. Ich glaube, Sie haben alle keine Erfahrung mit diesen Vorgängen, aber es ist in der Tat etwas schwierig, sie heute auf Ihrem Mobiltelefon zu bedienen Der Herausgeber ist hier, um Ihnen zu helfen. Wenn es Ihnen auch gefällt, schauen Sie es sich nicht an.​

SVM-Beispiele in Python SVM-Beispiele in Python Jun 11, 2023 pm 08:42 PM

Support Vector Machine (SVM) in Python ist ein leistungsstarker überwachter Lernalgorithmus, der zur Lösung von Klassifizierungs- und Regressionsproblemen verwendet werden kann. SVM eignet sich gut für den Umgang mit hochdimensionalen Daten und nichtlinearen Problemen und wird häufig in den Bereichen Data Mining, Bildklassifizierung, Textklassifizierung, Bioinformatik und anderen Bereichen eingesetzt. In diesem Artikel stellen wir ein Beispiel für die Verwendung von SVM zur Klassifizierung in Python vor. Wir werden das SVM-Modell aus der scikit-learn-Bibliothek verwenden

Was bedeutet h5? Was bedeutet h5? Aug 02, 2023 pm 01:52 PM

H5 bezieht sich auf HTML5, die neueste Version von HTML. H5 ist eine leistungsstarke Auszeichnungssprache, die Entwicklern mehr Auswahlmöglichkeiten und kreativen Raum bietet. Ihr Aufkommen fördert die Entwicklung der Web-Technologie und macht die Interaktion und Wirkung von Webseiten noch besser Wenn es allmählich reift und populär wird, glaube ich, dass es in der Internetwelt eine immer wichtigere Rolle spielen wird.

PS-Tastenkombination zum Kopieren der Ebene PS-Tastenkombination zum Kopieren der Ebene Feb 23, 2024 pm 02:34 PM

In den PS-Tastenkombinationen zum Kopieren von Ebenen können wir erkennen, dass Sie zum schnellen Kopieren die Tastenkombination [Strg+J] verwenden können, wenn Sie eine Ebene mit PS kopieren möchten. Diese Einführung in die Tastenkombinationen zum Kopieren von Ebenen kann Ihnen die spezifische Operationsmethode erläutern. Im Folgenden finden Sie den detaillierten Inhalt. Schauen Sie sich also um. PS-Tastenkombination zum Kopieren der Ebene: [Strg+J] Spezifische Methode: 1. Öffnen Sie das Bild in PS und wählen Sie die Ebene aus, die kopiert werden muss. 2. Drücken Sie gleichzeitig [Strg+J] auf der Tastatur, um das Kopieren der Ebene abzuschließen. Andere Kopiermethoden: 1. Nachdem Sie das Bild geöffnet haben, halten Sie die Ebene gedrückt und verschieben Sie das Symbol [Neue Ebene] nach unten. 2. Nachdem Sie sich zum Symbol bewegt haben, lassen Sie es los. 3. Die Ebenenkopie ist abgeschlossen.

Erfahren Sie, wie Sie Verknüpfungen zum Kopieren und Einfügen verwenden Erfahren Sie, wie Sie Verknüpfungen zum Kopieren und Einfügen verwenden Jan 13, 2024 pm 12:27 PM

Wenn viele Benutzer Computer verwenden und auf etwas stoßen, das kopiert und eingefügt werden muss, ist das Kopieren mit der Maus sehr mühsam. Schauen Sie sich also das detaillierte Tutorial an Tastenkombination „Kopieren und Einfügen“ So verwenden Sie die Taste: 1. Kopiertaste: Strg+C, wählen Sie den zu kopierenden Text oder das Bild aus und drücken Sie die Tastenkombination. 2. Einfügetaste: Strg+V. Drücken Sie einfach die Tastenkombination direkt an der Stelle, an der Sie einfügen möchten.

Was soll ich zur Tastenkombination „Strg' zum Kopieren hinzufügen? Was soll ich zur Tastenkombination „Strg' zum Kopieren hinzufügen? Mar 15, 2024 am 09:57 AM

In Windows-Systemen ist die Tastenkombination zum Kopieren Strg+C; in Apple-Systemen ist die Tastenkombination zum Kopieren Befehl+C; in Linux-Systemen ist die Tastenkombination zum Kopieren Strg+Umschalt+C. Die Kenntnis dieser Tastenkombinationen kann die Arbeitseffizienz des Benutzers verbessern und Text- oder Dateikopiervorgänge erleichtern.

Wie kopiere ich eine Tabelle in Excel und behalte das Originalformat bei? Wie kopiere ich eine Tabelle in Excel und behalte das Originalformat bei? Mar 21, 2024 am 10:26 AM

Wir verwenden häufig Excel, um mehrere Tabellendaten zu verarbeiten. Nach dem Kopieren und Einfügen der festgelegten Tabelle wird das ursprüngliche Format auf die Standardeinstellung zurückgesetzt und wir müssen es zurücksetzen. Tatsächlich gibt es eine Möglichkeit, dafür zu sorgen, dass die Excel-Kopiertabelle das ursprüngliche Format beibehält. Die spezifische Methode wird Ihnen im Folgenden erläutert. 1. Schritte zum Ziehen und Kopieren mit der Strg-Taste: Verwenden Sie die Tastenkombination [Strg+A], um alle Tabelleninhalte auszuwählen, und bewegen Sie dann den Mauszeiger an den Rand der Tabelle, bis der bewegliche Cursor erscheint. Halten Sie die [Strg]-Taste gedrückt und ziehen Sie dann die Tabelle an die gewünschte Position, um die Verschiebung abzuschließen. Es ist zu beachten, dass diese Methode nur auf einem einzelnen Arbeitsblatt funktioniert und nicht zwischen verschiedenen Arbeitsblättern verschoben werden kann. 2. Schritte zum selektiven Einfügen: Drücken Sie die Tastenkombination [Strg+A], um alle Tabellen auszuwählen, und drücken Sie

Wie kopiere und verschiebe ich Drag-and-Drop-Elemente in Vue? Wie kopiere und verschiebe ich Drag-and-Drop-Elemente in Vue? Jun 25, 2023 am 08:35 AM

Vue ist ein beliebtes JavaScript-Framework, das eine praktische Drag-and-Drop-Funktion bietet, mit der wir Elemente einfach kopieren und verschieben können. Schauen wir uns als Nächstes an, wie man Drag-and-Drop-Elemente in Vue kopiert und verschiebt. 1. Grundlegende Implementierung von Drag-and-Drop-Elementen Um Drag-and-Drop-Elemente in Vue zu kopieren und zu verschieben, müssen Sie zunächst die grundlegende Drag-and-Drop-Funktion des Elements implementieren. Die spezifische Implementierungsmethode lautet wie folgt: Fügen Sie die Elemente hinzu, die in die Vorlage gezogen werden müssen: &lt;divclass="drag-elem"

See all articles