2008-09-29
saveHistory behavior
JavaScript, HTC | |
これは何か
ページごとに存在する persist data を取り扱う behavior のよう。但し、historyで戻る、あるいは進んだ場合にのみ発動するみたい。
サンプル
<!DOCTYPE html> <html> <head> <title>saveHistory Test</title> <meta name="save" content="history" /> <style type="text/css"> .historyData { behavior: url("#default#saveHistory"); } </style> </head> <body> <div class="historyData"></div> <script type="text/javascript"> var data = null; var historyData = document.getElementsByTagName("div")[0]; historyData.attachEvent("load", function(evt) { data = this.getAttribute("pdata"); }); historyData.attachEvent("save", function(evt) { this.setAttribute("pdata", ++data); }); </script> </body> </html>
のようにして、data という変数をalertしてみれば挙動が分かると思う。
ちなみにこの historyData とつけた変数への setAttribute, getAttribute は saveHistory behavior に対する onsave, onload イベントの時の参照先が persist data であって、そのイベントハンドラ内で実行した場合とそうでない場合で、得られるデータないしは保存先が異なる。
どういった場合に使えるか
ブラウザの戻る、進むボタンを押した時を検出するとかに使える。
ただ、今自分がやりたい事に対しては全然使えないんだなぁ。
DefaultBehaviorのまとめエントリーあると面白いかも。
他のPersistent系は余り使い道無いかも。。。
MSDNのサンプルコードをIEで開く事が出来るんで、まぁそこ見れば十分だと思いますw