Clipboard APIを使った実装を行った際、案件のテスト環境がSSL未対応(http)でうまく動作しないということがあったので、備忘録としてメモしておきます。
サンプルコード
MDNの引用ですが、SSL対応をしているサイトでないと機能を使用できないようです。
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
引用 – Clipboard – Web API | MDN
実際にボタンクリックでテキストをコピーする処理を実装してみます。
<button id="btn">コピーテスト</button>
document.getElementById('btn').addEventListener('click', function(e) { copy_to_clipboard('コピーテスト'); }); function copy_to_clipboard(value) { if(navigator.clipboard) { var copyText = value; navigator.clipboard.writeText(copyText); } else { alert('対応していません。'); } }
SSL未対応のページの場合、alertで「対応していません。」の表示になります。
SSL未対応の場合のデモページ
同じ内容でSSL対応のページの場合、問題なく動作します。
SSL対応している場合のデモページ
今回はテスト環境のみがSSL未対応で、本番環境はSSL対応していたため特に対応は行いませんでしたが、本番環境がSSL未対応で同じような実装が必要という場合、現在非推奨になっているexecCommand()を使った実装になりそうです。
こういうことだったのか…ありがとうございます。
赤澤さん
コメントありがとうございます。
お役に立てたようでよかったです。