SQLの窓

2009年12月31日


JS : テキストエリア内の選択文字列の置き換え

最近、セキュリティ制限やらで prompt が使え無い場合があって、
自分でセキュリティ設定が必要になりますが、それはとりあえず置いておいて、
テキストエリア内の選択文字列をタイトルにしたリンクの作成方法です
<script type="text/javascript">

function createURLLink() {

	var userAgent = window.navigator.userAgent.toLowerCase();
	var appVersion = window.navigator.appVersion.toLowerCase();
	var txt = "";
	var strUrl = "";
	if (userAgent.indexOf("msie") > -1) {

		var objSelectedText = document.selection
		var objTextRange = objSelectedText.createRange( )

		if (objTextRange.text.length == 0 ) {
			return;
		}
		try {
			strUrl = prompt("URLリンク作成","http://");
			if ( strUrl != "" && strUrl != "http://" && strUrl+"" != "null" ) {
				txt = objTextRange.text
				txt = "<a href=\""+strUrl+"\" target=\"_blank\">"+txt+"</a>"
				objTextRange.text = txt;
			}
		}catch( e ){}
	}
	else {
		var obj = document.getElementById("txt091231d")
		var ns = obj.selectionStart;
		var ne = obj.selectionEnd;
		var nl;

		if ( ns != ne ) {
			strUrl = prompt("URLリンク作成","http://");
			if ( strUrl != "" && strUrl != "http://" && strUrl+"" != "null" ) {
				txt = obj.value.substring(ns, ne);
				txt = "<a href=\""+strUrl+"\" target=\"_blank\">"+txt+"</a>"
				nl = txt.length
				txt = obj.value.substring(0, ns)
					+ txt + obj.value.substring(ne,obj.value.length);
				obj.value = txt;
				obj.setSelectionRange(ns,ns+nl);
			}
		}

	}

}

</script>

<TEXTAREA id=txt091231d rows=5 wrap=off cols=50></TEXTAREA>
<input type=button value="リンク作成" onClick='createURLLink()'>




タグ:javascript
posted by lightbox at 2009-12-31 16:14 | JavaScript コンテンツ | このブログの読者になる | 更新情報をチェックする

JS : ブログ内でテキストエリアの作成方法

上はそのまま HTML を書いてますが、下は JavaScript のdocument.write で書き出しています。Seesaa では HTML をそのまま書いてもうまくいくようになっていますが、プログの本文は、アプリケーション的にはテキストエリアなので、ひょっとして場合によってはうまくいかない可能性もあります。そういう場合は JavaScriptバージョンで対応できます
<script type="text/javascript">
str="";
str+="<"+"textarea wrap=off id=txt091231a cols=50 rows=5><"+"\/textarea> ";
document.write(str);
</script>

で、以下のテキストエリアは自作の JavaScript アプリケーションなので、タブが使えます。選択して一括で複数行にタブが挿入できて、SHIFT+TAB で逆にタブを削除できます。
<SCRIPT 
	type="text/javascript"
	src="http://lightbox.on.coocan.jp//tabtextarea.js">
</SCRIPT>
<script type="text/javascript">
createTabTextArea("txt091231c",50,5);
</script>


▲ 使い方です。そのまま使ってもいいし、.js ダウンロードしてもらってもいいです

※ この場合は name 属性しか無いので JavaScript で参照は以下のようになります
document.getElementsByName("txt091231c")[0].value




タグ:javascript
posted by lightbox at 2009-12-31 15:00 | 記録 | このブログの読者になる | 更新情報をチェックする

2009年12月28日


Ruby : Seesaa のブログ設定画面で、Form選択からコンボボックス、ラジオボタン、チェックボックスの設定

ブログを新しく作成した場合、初期設定がけっこうたいへんです。
Ruby に全部やらせてしまおうと以前から思ってましたので、手始めとして
ブログ設定の自動設定を作成しました。

全てうまくいったら WEB サービスして公開します
#!/usr/local/bin/ruby
print "Content-type: text/html\n\n"

require "cgi"
cgi = CGI.new

ENV['GEM_HOME']="/home/lightbox/gems"
$LOAD_PATH.push('/home/lightbox/lib')

require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new
#seesaa にログイン
page = agent.get("https://ssl.seesaa.jp/www/pages/welcome/login/input")
form = page.forms.first
form["member__email"] = "メールアドレス"
form["member__password"] = "パスワード"
form.submit

# 対象ブログのページ
page = agent.get('http://blog.seesaa.jp/pages/my/blog/home/?blog_id=ブログ番号')

# 設定ページ
page = agent.get('http://blog.seesaa.jp/pages/my/blog/settings/basics/edit/input')

# 3番目のフォーム
form = page.form_with(:name => 'myform')

# カテゴリコンボボックスを IT/インターネット にセット
form.field_with(:name => 'blog_category_id').value = "41"
# form.field_with(:name => 'blog_category_id').options[1].value

# メールマガジン無し
form.checkbox_with(:name => 'blog__mailmag_text').uncheck
form.checkbox_with(:name => 'blog__mailmag_html').uncheck
form.checkbox_with(:name => 'blog__mailmag_summary').uncheck

# コメントを通知する
form.radiobuttons_with(:name => 'blog__alert_comment')[0].check
form["blog__alert_email"] = "メールアドレス"

# 共有ヘッダを無しでセット
form.radiobuttons_with(:name => 'blog_ext__common_header')[1].check

# 更新
page = form.click_button(form.buttons[1])

print "seesaa : settings_basics : update : ok"





タグ:ruby Mechanize
posted by lightbox at 2009-12-28 02:19 | Ruby | このブログの読者になる | 更新情報をチェックする
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 ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり