HTMLやスクリプトでできた部品を埋め込む為に、クリップボードを利用する場合、一般的には テキストエリアにコードを表示させて、ユーザがクリップボードを使いやすいようにするのがコード提供側で最も簡単な方法です。textarea に対して、select メソッドを実行するだけなので、テキストエリアそのものに以下のように仕込むだけです
<textarea onclick="this.select();">この文字列を選択</textarea>
しかし、選択肢としては汎用性を持たせる為に、PRE 要素内を使用するのもいいかと思います。正攻法で実装すると少し面倒ですが、jQuery を使うと汎用性も出て来ます。エレメント(ここでは PRE)を選択状態にする
ここを選択します
ここの文字列は、CSS の設定によって改行コードを挿入しなくても、自動的に折り返すようになっています。また、overflow: hidden; によって、選択状態を枠の中に納めています。さらに、CSS での効果もいろいろ期待できます。
▲ の正攻法の実装コード
<a href='javascript:void(0);' onclick=' if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) { var s = document.selection; var range = s.createRange( ); range.moveToElementText(document.getElementById("my_src")) range.select(); } else { var s = window.getSelection(); s.selectAllChildren(document.getElementById("my_src")); } ' >エレメント(ここでは PRE)を選択状態にする</a> <style> #my_src { white-space: pre; white-space: pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: -moz-pre-wrap; white-space: -hp-pre-wrap; word-wrap: break-word; overflow: hidden; border-radius: 10px; box-shadow: 0 15px 10px -10px rgba(0, 0, 0, 0.5), 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset; } </style> <pre id="my_src" style="width:400px;border: 1px solid #000000;padding:10px;"> ここを選択します </pre>
indexOf("microsoft") > -1 に関しては、IE10 までの対応です。IE11 からは下のほうの処理が実行されます( 元々この処理方法は、Microsodt 製品内で行っていたので、それにあわせて IE11 での仕様変更で microsoft の文字列がなくなっており、選択処理の仕様も他のブラウザと同じになりました ) 以下のように jQuery を使うと若干記述が簡潔になります。jQueryで選択状態にする
ここを選択します
ここの文字列は、CSS の設定によって改行コードを挿入しなくても、自動的に折り返すようになっています。また、overflow: hidden; によって、選択状態を枠の中に納めています。さらに、CSS での効果もいろいろ期待できます。
<style> #my_src2 { white-space: pre; white-space: pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: -moz-pre-wrap; white-space: -hp-pre-wrap; word-wrap: break-word; overflow: hidden; border-radius: 10px; box-shadow: 0 15px 10px -10px rgba(0, 0, 0, 0.5), 0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset; } </style> <script> if ( !window.jQuery ) { document.write("<"+"script src=\"//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></"+"script>"); } </script> <script> $(function(){ $("#click_text").click(function(){ if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) { var s = document.selection; var range = s.createRange(); range.moveToElementText($("#my_src2")[0]); range.select(); } else { var s = window.getSelection(); s.selectAllChildren($("#my_src2")[0]); } }).css({ cursor: "pointer", textDecoration: "underline" }); }); </script> <span id="click_text">jQueryで選択状態にする</span> <pre id="my_src2" style="width:200px;border: 1px solid #000000;padding:10px;"> ここを選択します ここの文字列は、CSS の設定によって改行コードを挿入しなくても、自動的に折り返すようになっています。また、overflow: hidden; によって、<strong><span style="color:#CB0032;">選択状態を枠の中に納めています。</span></strong>さらに、CSS での効果もいろいろ期待できます。 </pre>
|
【JavaScriptの最新記事】
- Firebase の Realtime Database の JSON を jQuery の $.ajax で読み込んで TABLE を作成する
- Firebase に定義した Realtime Database の API を使用して TABLE を作成する
- IE や Firefox の開発者ツールのコンソールで簡単に localStorage を見る為の1行コード
- テキストエリアでタブ処理
- ブラウザ判定 : String.prototype.browser に登録して、文字列と実際のブラウザが一致したら true を返す
- jQuery UI の datepicker を使用した現在の日付文字列の取得 と 一般的な現在の日付文字列の加工取得処理
- geolocation を使用して『都道府県選択コンボボックス』の初期値を現在の緯度・経度から選択する
- 雪を降らす snowstorm.js の 特定 DIV 内での実装
- JavaScript : ブックマークレットの作り方
- いまさらですが、JavaScript で、グローバル領域を汚さない変数宣言の使用方法
- 二回目のロードは無視する、JavaScrip ライブラリの基本スケルトン
- ブックマークレットから、ページ中央に固定する IFRAME ウインドウを作成する
- JavaScript の全ての オブジェクトに同じ機能を持たせる
- JavaScript : コンボボックスの OPTION 部分の操作でたいていのテクニック
- JavaScript : 文字列で表現された日付を論理チェック
- HighslideJS 用貼り付けコード作成
- テキストエリアに入れた JSON データをチェックするコード(F12等の開発者ツールも使う) / JSON.stringify と JSON.parse
- JS : function() {} という『無名の処理』の理解
- GoogleVisualizationAPIを使用したブラウザ比率の円グラフ(2009年3月〜) / IE がまだ半分を占めてます
- Safari for windows の alert