Flashを用いずJavaScriptでコピー&カット機能を実装する方法
2024/01/13
以前メモったようなFlashを用いる方法ではなく、WebAPIでコピー&カット機能を実装できるらしい。以下に以前の記事とサンプルとソースをメモ。
以前の記事
https://taitan916.info/blog/?p=419
サンプル
https://taitan916.info/sample/cut_copy/
ソース
<html lang="ja"> <head> <meta charset="UTF-8"> <title>document.execCommandでカット&コピー</title> </head> <body> <textarea class="sample-text">サンプルテキスト</textarea> <button class="cut btn">カット</button> <button class="copy btn">コピー</button> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script> $(function(){ $('.btn').click(function(){ var key = ( $(this).hasClass('cut') ) ? 'cut' : 'copy'; var text = document.querySelector('.sample-text'); text.select(); try{ var successful = document.execCommand(key); var msg = successful ? 'success!' : 'error!'; alert( msg ); }catch( err ){ console.log( err ); } }); }); </script> </body> </html>
その他
利用可能ブラウザはchrome42,firefox41,IE9,Opera29となっており、safariやスマホ端末は無理っぽい。詳細は以下の通り。
https://developer.mozilla.org/ja/docs/Web/API/Document/execCommand#Browser_Compatibility
PCでの利用が前提のページでブラウザもある程度指定可能な、社内向けの管理画面とかで用いるのがよさそう。
関連記事
-
jQueryのfind実行時に複数のセレクタを指定する方法
jQueryのfind()実行時に複数のセレクタを指定したい。 <div ...
-
jQueryでUNIXタイムスタンプの取得
jQueryでUNIXタイムスタンプを取得したい場合、 $.now()だけで取得 ...
-
videoタグで表示させた動画をjQuery&CSSでフローティングビデオ対応させる方法
Web上の動画をFloatingVideo対応したいという要望を受けた。ページ上 ...
-
Ajaxでプラグイン無しのファイルアップロード方法
画像ファイルを添付できて、尚且つAjaxを用いた非同期通信のフォームを作りたかっ ...
-
フォームの入力・選択内容を自動保存してくれる「Garlicjs」プラグインの利用方法
お問い合わせページ等、フォームを設置したページで入力・選択した内容を保存したい。 ...