この記事では主に HTML5 のクリップボード関数の実装コードを紹介します。内容は非常に優れているので、参考として共有します。
私は最近、Vue を使用して Line (中国の WeChat に似た日本と韓国のプラットフォーム) の組み込み H5 を開発しました。要件の 1 つは、現在のリンクを貼り付けて、それを PC に送信し、コンピューター上で開くことです。すべてのコレクションでいくつかの状況が見つかりました:
1. 入力ボックスのないネイティブ js メソッド
この状況は、入力ボックス以外のテキストをクリップボードにコピーするのに適しています
2。入力ボックスを使用したメソッド
は、入力領域とテキストエリアのテキストをコピーするために使用されます
<h1 id="content">被复制的内容</h1> <button id="button">点击复制</button> <script> (function(){ button.addEventListener('click', function(){ var copyDom = document.querySelector('#content'); //创建选中范围 var range = document.createRange(); range.selectNode(copyDom); //移除剪切板中内容 window.getSelection().removeAllRanges(); //添加新的内容到剪切板 window.getSelection().addRange(range); //复制 var successful = document.execCommand('copy'); try{ var msg = successful ? "successful" : "failed"; alert('Copy command was : ' + msg); } catch(err){ alert('Oops , unable to copy!'); } }) })() </script>
このメソッドは拡張することもでき、メソッド 1 と同じ目的を果たします。入力ボックスを動的に作成し、その内容をコピーする内容に設定し、最後に入力ボックスを削除または非表示にします。
3.js コンテンツをクリップボードプラグイン(clipboard.js)にコピー
clipboard.js公式サイト
clipboard.js CDNアドレス
引用方法:
npm install --save Clipboard<p></code >CDN <code> <script src="https://cdn.bootcss.com/clipboard.js/2.0.1/clipboard.js"></script>
npm install --save clipboard<br/>
CDN <script src="https://cdn.bootcss.com/clipboard.js/2.0.1/clipboard.js"></script>
<input type="text" id="input" value="17373383"> <br> <button type="button" id="button">复制输入框中内容</button> <script> (function(){ button.addEventListener('click', function(){ input.select(); document.execCommand('copy'); alert('复制成功'); }) })() </script>
内部には多くの高度な使用方法があり、詳細については公式 Web サイトのロジックにアクセスしてください。 Clipboard 公式 Web サイト
4. Vue フレームワークによって提供されるクリップボード プラグイン vue-clipboard2
<!--默认是截取.btn中的 data-clipboard-text的属性值--> <!-- <button class="btn" data-clipboard-text="3">Copy</button> --> <!--截取input输入框中的值--> <input id="foo" value="https://github.com/zenorocha/clipboard.js.git"> <!-- Trigger --> <button class="btn" data-clipboard-target="#foo"> <img src="assets/clippy.svg" alt="Copy to clipboard"> </button> <script src="https://cdn.bootcss.com/clipboard.js/2.0.1/clipboard.js"></script> <script> var clipboard = new ClipboardJS('.btn'); clipboard.on('success', function (e) { console.log(e); }); clipboard.on('error', function (e) { console.log(e); }); </script>
Sample1
import Vue from 'vue' import VueClipboard from 'vue-clipboard2' VueClipboard.config.autoSetContainer = true // add this line Vue.use(VueClipboard)
Sample2
<p id="app"></p> <template id="t"> <p class="container"> <input type="text" v-model="message"> <button type="button" v-clipboard:copy="message" v-clipboard:success="onCopy" v-clipboard:error="onError">Copy!</button> </p> </template> <script> new Vue({ el: '#app', template: '#t', data: function () { return { message: 'Copy These Text' } }, methods: { onCopy: function (e) { alert('You just copied: ' + e.text) }, onError: function (e) { alert('Failed to copy texts') } } }) </script>
その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
HTML5 タッチ イベントを使用してモバイル側にシンプルなプログレス バーを実装する方法HTML5 モバイル側で受賞歴のあるシームレスなスクロール アニメーションの実装htmlスライド アップを実装する 5 つのタッチ イベントタッチ スクリーン ページを下に進みます以上がHTML5のクリップボード機能の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。