JavaScript用ヒアドキュメントライブラリを試作
一応、Windows XP 上の IE6 SP2、Firefox 2.0.0.1、Opera 9.10 でサンプルは動作するようです。
function hdocInit( tgt ) {
if ( !tgt ) tgt = location.href ;
for (;;) {
var xmlHttpObj = null ;
if ( typeof ActiveXObject != "undefined" ) {
var msXml = [ 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP' ] ;
for ( var ci=0; ci < msXml.length; ci++ ) {
xmlHttpObj = new ActiveXObject( msXml[ci] ) ;
if ( xmlHttpObj ) break ;
}
}
else if ( typeof XMLHttpRequest != "undefined" ) {
xmlHttpObj = new XMLHttpRequest() ;
}
if ( !xmlHttpObj ) break ;
xmlHttpObj.open( 'GET', tgt, false ) ;
xmlHttpObj.send( null ) ;
var hdocTgtLines = xmlHttpObj.responseText.split(/\r?\n/) ;
var keyflg = false ;
var lines = new Array() ;
var key = '' ;
for ( var ci=0; ci < hdocTgtLines.length; ci++ ) {
var line = hdocTgtLines[ci] ;
if ( line.match( /^<<(.+)$/ ) ) {
key = RegExp.$1 ;
keyflg = true ;
lines = new Array() ;
}
else if ( keyflg ) {
if ( line.match( new RegExp("^"+key+"$" ) ) ) {
keyflg = false ;
hdocLists[key] = lines.join('\n') ;
continue ;
}
lines.push(line) ;
}
}
break ;
}
} // end of hdocInit()
function hdocGet( key ) {
return hdocLists[key] ;
} // end of hdocGet()
- 最初にhdocInit()で初期化。
デフォルトの対象文書はlocation.hrefですが、同一ドメイン内なら引数にURLを指定することで別文書を指定することも出来る……かもしれません。
- 例えば変数に代入する場合は、
var str = hdocGet('hdoc1'
/*
<<hdoc1
:
:
【ここに文字列を入れます】
:
:
hdoc1
*/
) ;
シンボル(hdoc1の箇所)は任意です。ただし全文書中でユニークなものであること、最初の"<<(シンボル)"と最後の"(シンボル)"は必ず行頭に記述すること(同一行には他に何も書かない)が条件となります。
要はhdocInit()時に、対象文書中の"<<(シンボル)"~"(シンボル)"を探して、その中の文字列をシンボルをキーにしてhashに突っ込んでいるわけです。
正規表現が苦手なので、細かいチェックはしてませんし、書き方もベタベタです(苦笑)。
2007/02/17(土) 07:48 | 固定リンク
| 記事の編集(管理者用)
「おもいつき」カテゴリの記事
- ちょっと小細工:textareaの高さを自動調節(2008.05.21)
- Yin and Yang:動作改善(?)他(2008.05.14)
- ノイズキャンセル(マスク|マイク)ってないのかな?(2008.05.07)
- 『はてブBOX』と、ココログ用『はてブコメント表示欄』スクリプトの更新(2008.05.05)
- Yin and Yang:リンク先の内容をその場で表示するスクリプトの更新(2008.05.02)
「パソコン・インターネット」カテゴリの記事
- ツールを作る側は対象に与える影響をどこまで気にするか?(2008.05.29)
- "『無断リンクはやめて』という人にはしない方向で"の思考過程(2008.05.24)
- 『無断リンクはやめて』という人にはしない方向で(2008.05.22)
- ちょっと小細工:textareaの高さを自動調節(2008.05.21)
- Yin and Yang:動作改善(?)他(2008.05.14)
「覚書」カテゴリの記事
- ちょっと小細工:textareaの高さを自動調節(2008.05.21)
- Google検索結果画面のHTML構造、変わりました?(2008.04.30)
- Googleの検索結果からH2タグが消える現象の原因(2008.05.03)
- 【JScript】ActiveXObject('htmlfile')で発生する不具合(2008.04.05)
- 【JavaScript】onmouseover/onmouseoutの振る舞い(2008.03.11)
この記事へのトラックバック一覧です: JavaScript用ヒアドキュメントライブラリを試作:
» JavaScriptでHTMLを出力するときの小技(ヘッダメニューの続き) トラックバック ガジェットWatch
以前の記事で、ココログのヘッダ部分にメニューを設置した話を書きました。メニュー作成のHTMLを全部JavaScriptで記述し、外部ファイルに追い出してしまうことで、内容が変わっても「ブログへの反映... 続きを読む
受信: 2007/05/20 21:14:37

