土曜日, 11月 04, 2006

widgetsの関数を使って書き換えてみる実験

ページの部分更新をwidgets.jsにある関数を使って書き換えてみる実験です。
なんとなくw_ca()という関数を使うのがよさげ

w_ca(a,b,c)
a = POSTするアドレス
b = POSTするパラメータの配列
c = コールバック関数

だいたい関数の引数はこれであってるかと思います。

こんな関数を作ってみました

function setblogposts(url)
{
var a = "http://" + document.domain;
var b = ["action","nextposts","widgetId","Blog1","widgetType","Blog","responseType","js","path",url];
var c = function(e){return true};
w_ca(a,b,c);
}

引数のurlに表示したいurlをいれます

urlは
http://****.blogspot.com/search?updated-min=***&updated-max=***&max-results=*
というのが有効で他のは使えないのかもしれません
updated-minとupdated-maxは表示する記事の日付の範囲を指定します
これは片方だけでもOKです
日付は
2006-11-04T11:11:00+09:00
こんな感じでURLエンコードするといいでしょう
日付の範囲からURLを生成する関数を作ると便利かもしれません
最後の所のmax-results=*の*の部分なんですが
これを例えば5に設定すると記事が5件表示されます
Older Postsとかのリンクもこのmax-resultsの値に書き換わってしまうので注意が必要です。

cのコールバック関数のeにはXMLHttpRequestが返ってくるので
e.responseTextを使うと書き換え用のJavascriptが取り出せます
コールバックの戻り値がtrueの場合は自動的に表示が更新され
falseの場合は表示は更新されません
なので

function(e){
try{
eval(e.responseText);
}catch(e){
}
--この辺に書き換え後の処理--
return false;
};

こんな風に自前で更新させ事後処理とか追加するのもいいかもしれない。

0 件のコメント: