SQLの窓

2013年03月02日


jQuery : window.openでテキストエリアを開いてクリップボード用データを表示する

処理そのものは、jQuery である必要はあまりないのですが、イベントの処理が必要なので jQuery で書いています。インラインで全て書いてしまってもいいのですが、引用符がかなり複雑になって面倒なのでこれでいいと思います。

ちょっとした貼り付け用のサービスとして

どのような対象でも、クリックする事によってウインドウを開かせて、追加の情報としてテキストエリアの中に表示し、テキストエリアの中をクリックすると選択状態になります。

後は、ユーザーがコピーするかどうするかはご自由に・・・という処理です。


こんな感じでデータを表示




▼ こちらをクリックして下さい
<script type="text/javascript"> // この内容をテキストエリアに転送します // ※ クリックすると、選択されます </script>
<script>
if ( !window.jQuery ) {
	document.write("<"+"script src=\"//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></"+"script>");

}
</script>
<script>

$(function() {
	$("#target").append("window.openでテキストエリアを開いてクリップボード用データを表示する")
	 .css("cursor","pointer")
	 .click(function() {
		var doc = window.open(
			"about:blank",
			"",
			"width=600,height=100").document;
		doc.write("<textarea onclick=\"this.select();\" cols=70 rows=5>" );
		doc.write( $("#target .show_text").text() );
		doc.write("</textarea>");
		doc.close();
	});
});
</script>


<style type="text/css">
.show_text {
	display: none;
}
</style>

<span id="target"><span class="show_text">&lt;script type="text/javascript"&gt;
// この内容をテキストエリアに転送します
// ※ クリックすると、選択されます
&lt;/script&gt;
</span></span>


document.write() である理由

DOM で作成するのは、本来合理的ではありません。過去、ブラウザによって DOM の実装が違ったりバグだったりと、同じ処理でできるかもしれないのは、jQuery がある前提で、jQuery に問題が出ればかなり困った事になります。

まあそんな大げさでも無いですが、画面レイアウトを全て DOM で作成するのはやはり合理的では無いので、HTML レベルの文字列を用意して書き出すほうがリスクが少ないと思います。

とにかく、経験から言って document.write の動作は信頼性が高く、仕様から言っても PHP で条件によって違うページを作るのを、クライアントで行単位でやってるようなものです。



タグ:jquery javascript
posted by lightbox at 2013-03-02 10:00 | jQuery | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり