HTML記述
<script type="text/javascript" src="dabten.js"></script>
を記述し、dabten.jsを読み込んでください。
Dabtenというオブジェクトを生成しますので、以降、このオブジェクトのメソッドを使用してテンプレートファイルにアクセスしてください。
Dabten.Load(files, option)
テンプレートファイルをロードします。
---- 引数 ----
- files (Object)
-
{ID1: ファイル1, ID2: ファイル2 [, ...] }
このIDはテンプレートからHTMLやDOMノードツリーを作成するときに参照します。
Load()関数は何度でも呼び出せますが、IDは共有されます。
同じIDが指定された場合は上書きされます。
- option (Object)
-
{method: (String), postData: (String||Object), user: (String), password: (String), enctype: (String), encoded: (Boolean), headers: (Object), onsuccess: (Function)}
サーバーに送信するデータ、および受信後の動作指示
-
- method: (String)
- 送信メソッド。"GET"または"POST"
- postData (String, Object)
- サーバーに送信するデータ
Objectが渡された場合は、そのプロパティと値を組にして送信します。
- encoded (Boolean , default:false)
- 送信データがURIエンコードされているか
falseが指定されるとencodeURIComponentを使用してエンコードします。
- enctype (String , default:"applecation/x-www-form-urlencoded")
- 送信データ種別
"application/x-www-form-urlencoded"をサポート
- user: (String)
- Authroizationが必要なページで使用するユーザー名
- password: (String)
- Authroizationが必要なページで使用するパスワード
- headers: (Object)
- RequestHeader
- onsuccess: (Function)
{id1: (Function), id2: (Function) [, ...]}
- 指定したIDのファイルが読み終わると実行されるコールバック関数です。
---- サンプル ----
Dabten.Load(
{
id1:'tpldetail.txt'
,id2:'tpldetail2.tpl'
,id3:'tpldetail3.html'
}
,
{
onsuccess:callback
}
);
Dabten.LoadMixed(uri, files, option)
multipart/mixed形式のテンプレートファイルをロードします。
送信はmethod="POST"、encode-type: "multipart/form-data"になります。
*今後のバージョンで大幅な仕様変更を予定しています
---- 引数 ----
- files (Object)
-
{ID1: ファイル1, ID2: ファイル2 [, ...] }
このIDはテンプレートからHTMLやDOMノードツリーを作成するときに参照します。
Load()関数は何度でも呼び出せますが、IDは共有されます。
同じIDが指定された場合は上書きされます。
- option (Object)
-
{method: (String), postData: (String||Object), user: (String), password: (String), enctype: (String), encoded: (Boolean), headers: (Object), onsuccess: (Function)}
サーバーに送信するデータ、および受信後の動作指示
-
- method: (String)
- 送信メソッド。"POST"のみ
- postData (String, Object)
- サーバーに送信するデータ
Objectが渡された場合は、そのプロパティと値を組にして送信します。
- encoded (Boolean , default:false)
- 送信データがURIエンコードされているか
falseが指定されるとencodeURIComponentを使用してエンコードします。
- enctype (String , default:"multipart/form-data")
- 送信データ種別
"multipart/form-data"、"multipart/mixed"をサポート
- user: (String)
- Authroizationが必要なページで使用するユーザー名
- password: (String)
- Authroizationが必要なページで使用するパスワード
- headers: (Object)
- RequestHeader
- onsuccess: (Function)
{id1: (Function), id2: (Function) [, ...]}
- 指定したIDのファイルが読み終わると実行されるコールバック関数です。
---- サンプル ----
Dabten.Load(
sample.cgi
,{
id1:'tpldetail.txt'
,id2:'tpldetail2.tpl'
,id3:'tpldetail3.html'
}
,
{
onsuccess:callback
}
);
Dabten.GetHTML(ID, data)
戻り値は通常の文字列です。
Dabten.Load()で指定されていないIDが指定された場合、
またはDabten.Load()に失敗したファイルのIDが指定された場合は空文字列が返されます。
---- 引数 ----
- ID (String)
- Dabten.Load()の第一引数のIDに対応。
- data (Object)
{var: value [, ...] } | {wrapper: [{var: value [, ...] } ]}
テンプレートの{tpl:var}に適用するデータ
---- サンプル ----
document.getElementById('docid').innerHTML
= Dabten.GetHTML('id', {name:'Joe',age:33});
Dabten.GetDOM(ID, data, namespace)
DOMエレメント
戻り値はリスト(配列)となります。
---- 引数 ----
- ID (String)
- Load()の第一引数のIDに対応。
- data (Object)
{var: value [, ...] } | {wrapper: [{var: value [, ...] } ]}
テンプレートの{tpl:var}に適用するデータ
- namespace (Boolean||String , Default: true)
- trueが指定されるとXHTMLで作成している場合にhtmlタグのxmlns属性を取得し、DOMエレメント生成時のnamespaceとして使用します。
falseが指定されるとXHTMLの時でもnamespaceは使用しません。
独自のnamespaceを指定するときは、文字列で指定してください。
XHTML1.0、XHTML1.1では xmlns属性は "https://www.w3.org/1999/xhtml" と決まっています。
---- サンプル .1 ----
template.tpl
<h1>{tpl:title}</h1>
<p>{tpl:summary}</p>
script
domarray=Dabten.GetDOM(tplId, {title:'学生簿', summary:'2年1組男子生徒一覧'});
docobj=document.getElementById('doc');
for(var id=0;i<domarray.length;i++){
docobj.appendChild(domarray[i]);
}
---- サンプル .2----
template.tpl
{tpl::repeat=students}
<tr>
<td>{tpl:sid}</td>
<td>{tpl:name}</th>
</tr>
{tpl::endrepeat}
script
data={students:[
{sid:1, name:'Joe'}
,{age:2, name:'Peat'}
]};
domarray=Dabten.GetDOM(tplId, data);
table=document.getElementsByTagName('table')[0];
tbody=table.getElementsByTagName('tbody')[0];
for(var i=0;i<domarray.length;i++){
tbody.appendChild(domobj[i]);
}
Dabten.GetXML(ID, data, slt);
この機能は現在サポートしていません。
テンプレートファイルはrootとなるノード(タグ)が必須。
XSLの適用はブラウザのXSLTを使用します。
戻り値はXMLエレメントとなります。
---- 引数 ----
Dabten.Document(ID, elementID)
Dabten.Load()の代わりにドキュメント内のHTML/XHTMLを読み込み、登録します。
現在はinnerHTMLを使用するだけなので、そのエレメント自身は含まれません。
Dabten.InsertHTML(elementID, ID, Object)
Dabten.GetHTML()で作成したHTMLを、第一引数で指定したエレメントに入れ換えます。
戻り値は成功時 true、失敗時 false
---- 引数 ----
- element (String || HTML-DOM-Element)
- HTML/XHTMLドキュメント内の要素、またはそのID
- ID (String)
- Dabten.Load()の第一引数のIDに対応。
- data (Object)
{var: value [, ...] } | {wrapper: [{var: value [, ...] } ]}
テンプレートの{tpl:var}に適用するデータ
---- サンプル .1 ----
Dabten.InsertHTML('docid', 'tplid', {name:'Joe',age:33});
---- サンプル .2 ----
var elm=document.getElementById('docid');
Dabten.InsertHTML(elm, 'tplid', {name:'Joe',age:33});
Dabten.InsertDOM(element, ID, Object, add, namespace)
Dabten.GetDOM()で作成したDOMエレメントを、第一引数で指定したエレメントに追加、または入れ換えます。
戻り値は成功時 true、失敗時 false
---- 引数 ----
- element (String || HTML-DOM-Element)
- HTML/XHTMLドキュメント内の要素、またはそのID
- ID (String)
- Dabten.Load()の第一引数のIDに対応。
- data (Object)
{var: value [, ...] } | {wrapper: [{var: value [, ...] } ]}
テンプレートの{tpl:var}に適用するデータ
- add (Boolean , Default: false)
- HTMLを追加(true)するか更新(false)するかの指定。
- namespace (Boolean||String , Default: true)
- trueが指定されるとXHTMLで作成している場合にhtmlタグのxmlns属性を取得し、DOMエレメント生成時のnamespaceとして使用します。
falseが指定されるとXHTMLの時でもnamespaceは使用しません。
独自のnamespaceを指定するときは、文字列で指定してください。
DOMエレメント作成時にnamespace付きで作成するようになります。
XHTML1.0、XHTML1.1では xmlns属性は "https://www.w3.org/1999/xhtml" と決まっています。
---- サンプル .1 ----
Dabten.InsertDOM('docid', 'tplid', {name:'Joe',age:33});
Dabten.Test(id);
この機能は現在サポートしていません。
Dabten.Load()で指定されたIDに対応したファイルが正常に読み込めたかどうかをテストします。
Dabten.TestGroup(groupID);
この機能は現在サポートしていません。
Dabten.Load()で指定された全てのファイルが正常に読み込めたかどうかをテストします。
groupIDはDabten.Load()が呼び出された順番に、0からの連番になります。
Dabten.GetFromURI(type, id, uri, option)
Dabten.GetHTML()、Dabten.GetDOM()、Dabten.GetXML()の代わりに
CGIスクリプトなどのデータを受信し、テンプレートに適用します。
CGIスクリプトから取得するデータは、プレーンテキスト(JSON)です。
---- 引数 ----
- type (String)
- 'html', 'dom'のいずれか
戻り値のタイプをHTML、HTML-DOMエレメントのいずれかにします。
- id (String)
- Dabten.Load()の第一引数のIDに対応。
- uri (String)
- データ受信のためのCGIスクリプトのURI
- option (Object)
{method: (String), postData: (String), user: (String), password: (String), enctype: (String), encoded: (Boolean), headers: (Object), onFileNotFound: (Function), onError: (Function), async: (boolean), namespace: (String), slt: (Object)}
サーバーに送信するデータ、および受信後の動作指示
- method: (String)
- 送信メソッド。"GET"または"POST"
- postData (String, Object)
- サーバーに送信するデータ
Objectが渡された場合は、そのプロパティと値を組にして送信します。
- user: (String)
- Authroizationが必要なページで使用するユーザー名
- password: (String)
- Authroizationが必要なページで使用するパスワード
- enctype (String , default:"applecation/x-www-form-urlencoded")
- 送信データ種別
"application/x-www-form-urlencoded"、"multipart/form-data"、"multipart/mixed"をサポート
- encoded (Boolean , default:true)
- 送信データがURIエンコードされているか
falseが指定されるとencodeURIComponentを使用してエンコードします。
- headers: (Object)
- RequestHeader
- onSuccess (Function)
- 受信、および挿入完了後に呼び出すコールバック関数
呼び出し時の引数にはHTML、HTML/XHTML-DOMエレメントの配列、XML-DOMエレメントのいずれかになります。
- onFileNotFound (Function)
- 受信完了後、ファイルが存在しない場合に呼び出すコールバック関数
呼び出し時の引数にはDabten.Netが作成したオブジェクト
obj.clientプロパティがXMLHttpRequestオブジェクト本体です。
- onError (Function)
- 受信完了後、エラーがあった場合に呼び出すコールバック関数
呼び出し時の引数にはDabten.Netが作成したオブジェクト
obj.clientプロパティがXMLHttpRequestオブジェクト本体です。
- async (Boolean , default:true)
- 非同期指定
- namespace: (String)
- XHTML/SMLのノードに適用するnamespace
typeが'xml'または'dom'の時に有効。
XHTMLで作成している場合に true、または、htmlタグのxmlns属性を指定してください。
---- サンプル ----
template.tpl
<h1>{tpl:title}</h1>
<p>{tpl:summary}</p>
script
domarray=Dabten.GetFromURI('dom', tplId, 'data.cgi');
docobj=document.getElementById('doc');
for(var id=0;i<domarray.length;i++){
docobj.appendChild(domarray[i]);
}
受け取り時のデータは通常のeval(responseText)を使用してJavaScriptのObject(JSON)に変換できる形式のみ対応しています。
varが付いているとエラーになります。
var data={ key : value}; //受け取れない
data={ key: value }; // 受け取れる
Dabten.InsertFromURI(element, type, id, uri, option)
Dabten.GetHTML()、Dabten.GetDOM()、Dabten.GetXML()の代わりに
CGIスクリプトなどのデータを受信し、テンプレートに適用します。
CGIスクリプトから取得するデータは、プレーンテキスト(JSON)、XMLのいずれかです。
戻り値は、正常に完了すればtrue、失敗すればfalse
asyncがtrueの場合は、データの送信までで戻り値を返します。
---- 引数 ----
- element (String || HTML-DOM-Element)
- HTML/XHTMLドキュメント内の要素、またはそのID
- type (String)
- 'html', 'dom', 'xml'のいずれか
戻り値のタイプをHTML、HTML-DOMエレメント、XML-DOMエレメントのいずれかにします。
- id (String)
- Dabten.Load()の第一引数のIDに対応。
- uri (String)
- データ受信のためのCGIスクリプトのURI
- option (Object)
{method: (String), postData: (String), user: (String), password: (String), enctype: (String), encoded: (Boolean), headers: (Object), onFileNotFound: (Function), onError: (Function), async: (boolean), add: (Boolean), namespace: (String), slt: (Object)}
サーバーに送信するデータ、および受信後の動作指示
- method: (String)
- 送信メソッド。"GET"または"POST"
- postData (String, Object)
- サーバーに送信するデータ
Objectが渡された場合は、そのプロパティと値を組にして送信します。
- user: (String)
- Authroizationが必要なページで使用するユーザー名
- password: (String)
- Authroizationが必要なページで使用するパスワード
- enctype (String , default:"applecation/x-www-form-urlencoded")
- 送信データ種別
"application/x-www-form-urlencoded"、"multipart/form-data"、"multipart/mixed"をサポート
- encoded (boolean , default:true)
- 送信データがURIエンコードされているか
falseが指定されるとencodeURIComponentを使用してエンコードします。
- headers: (Object)
- RequestHeader
- onSuccess (Function)
- 受信、および挿入完了後に呼び出すコールバック関数
呼び出し時の引数にはHTML、HTML/XHTML-DOMエレメントの配列のいずれかになります。
- onFileNotFound (Function)
- 受信完了後、ファイルが存在しない場合に呼び出すコールバック関数
呼び出し時の引数にはDabten.Netが作成したオブジェクト
obj.clientプロパティがXMLHttpRequestオブジェクト本体です。
- onError (Function)
- 受信完了後、エラーがあった場合に呼び出すコールバック関数
呼び出し時の引数にはDabten.Netが作成したオブジェクト
obj.clientプロパティがXMLHttpRequestオブジェクト本体です。
- async (boolean , default:true)
- 非同期指定
- add (Boolean , Default: false)
- HTMLを追加(true)するか更新(false)するかの指定。
- namespace: (Boolean || String , Default: true)
- XHTML/SMLのノードに適用するnamespace
typeが'xml'または'dom'の時、かつ、ドキュメントがXHTMLまたはXMLの時に有効。
XHTMLドキュメントではtrueを指定することで、ドキュメントのhtmlタグに書かれたxmlns属性を取得し、デフォルトのnamespaceとします。
---- サンプル ----
template.tpl
<h1>{tpl:title}</h1>
<p>{tpl:summary}</p>
script
Dabten.InsertFromURI('elementID', 'dom', 'tplId', 'data.cgi');
受け取り時のデータは通常のeval(responseText)を使用してJavaScriptのObject(JSON)に変換できる形式のみ対応しています。
varが付いているとエラーになります。
var data={ key : value}; //受け取れない
data={ key: value }; // 受け取れる
Dabten.InsertJSONP(elm, id, uri, cbkey, post, callback)
JSONPによるテンプレートへのデータ反映を行います。
現在のバージョンでは受け取るデータをテンプレートに反映させるためのコールバック関数が別途必要です。
---- 引数 ----
- elem (String || HTML-DOM-Element)
- データを挿入するHTMLエレメントのID、またはエレメント自身。
- id (String)
- Dabten.Load()の第一引数のIDに対応。
- uri (String)
- テンプレートID。
データ受信のためのCGIスクリプトのURI
- cbkey (String)
- JSONPを提供しているサーバーが指定する、コールバック関数の名前。
一般的には "callback"
- post (Object)
-
サーバーに送信するデータ
- callback (Function)
- JSONPデータを受け取ってから呼び出す関数
---- サンプル ----
Dabten.Net.Load(url, callback, option)
いわゆるAjaxライブラリ。
戻り値はObject。
Object.clientがXMLHttpRequest/ActiveXObject本体。
---- 引数 ----
- url (String)
- データ送信先URI
- callback (Function)
- 受信完了後に呼び出すコールバック関数
- option (Object)
{method: (String), postData: (String), user: (String), password: (String), enctype: (String), encoded: (Boolean), headers: (Object), onFileNotFound: (Function), onError: (Function), async: (Boolean)}
サーバーに送信するデータ
- method: (String , default: "GET")
- 送信メソッド。"GET"、"POST"、"HEAD"のいずれか
- postData (String, Object)
- サーバーに送信するデータ
Objectが渡された場合は、そのプロパティと値を組にして送信します。
- enctype (String , default:"applecation/x-www-form-urlencoded")
- 送信データ種別
"application/x-www-form-urlencoded"、"multipart/form-data"、"multipart/mixed"をサポート。
ただし、ファイルフィールドのデータ(ファイル)はJavaScriptの制限により送信できません。(postDataの内容のみ送信します。)
multipart/form-data、multipart/mixedについての詳細はmultipartの項目を御覧ください。
- encoded (Boolean , default:false)
- 送信データがURIエンコードされているか
falseが指定されるとencodeURIComponentを使用してエンコードします。
- headers: (Object)
- RequestHeader
- onFileNotFound (Function)
- 受信完了後、ファイルが存在しない場合に呼び出すコールバック関数
呼び出し時の引数にはDabten.Netが作成したオブジェクト
obj.clientプロパティがXMLHttpRequestオブジェクト本体です。
- onError (Function)
- 受信完了後、エラーがあった場合に呼び出すコールバック関数
呼び出し時の引数にはDabten.Netが作成したオブジェクト
obj.clientプロパティがXMLHttpRequestオブジェクト本体です。
- user (String)
- ユーザー名
- password (String)
- パスワード
- async (Boolean , default:true)
- 非同期指定
---- サンプル ----
var o=new Dabten.Net.Load('sample.cgi', callback,
{
postData:'postData'
,onFileNotFound:callbackError
,onError:callbackError
,async:true
,method:'GET'
});
function callback(obj){
alert(obj.client.responseText);
}
function callbackError(obj){
alert('something error occured');
}