Introduction

ブログ内検索

  • このサイトの記事を検索 by Google

おすすめの一冊!

無料ブログはココログ

« 栗本薫『仮面舞踏会』 | トップページ | ファイルの末尾がわからない »

2009-09-02

SeaHorse でイベントハンドラ

Sleipnir の SeaHorse スクリプトで遊んでます。
お気に入りのサイトを勝手に改造したりとか。

JavaScript の勉強にもなるし、作っているうちに
「これってもしかして Web アプリじゃない?」
とか勘違いしそうになるので、楽しいです♪



ところで、SeaHorse スクリプトは普通のページ内の
JavaScript とは別のコンテキストで動いているので、
そのままではページ内フォームとかのイベントハンドラを
設定できなかったりします。

それでちょっと調べてみたら、強力な解決策がありました!

 ⇒ SleipnirScriptからイベントを使う方法メモ - ここここあ

なんと、Sleipnir のデフォルト設定で JavaScript を OFF にしていても
イベントハンドラを有効にできちゃうというスグレモノです。

ポイントとしては、関数定義を toString() しているので
もともとのスコープが無効になっていることでしょうか。
ハンドラ関数からはスクリプト全体のスコープが見えません。

結局、サンプル中の hoge() には補助関数も含めて
ベタ書きする必要があります。

でも、「JavaScript 第5版」に載っていた IE 独自のクライアント永続性
(behavior) もちゃんと使えました(こんなの↓

var uniqueKey = 'hogehoge'; // 永続化用のキー elem.style.behavior = "url('#default#userData')"; function saveToStorage(key, value) { var now = (new Date()).getTime() var period = 365 * 24 * 60 * 60 * 1000; elem.setAttribute(key, value); elem.expires = (now + period).toUTCString(); elem.save(uniqueKey); } function loadFromStorage(key) { elem.load(uniqueKey); return elem.getAttribute(key); }
とくに違和感もなく普通に使えたので、すばらしいです♪ IE 独自のクライアント永続性を使うと cookie に悩まされることもないので、 安心してデータの保存ができます(どうせ Sleipnir なら IE でしょうから) もともと cookie でしか保存できないところを勝手に複数パターン 保存できるようにしたり、なかなか楽しいです♪

« 栗本薫『仮面舞踏会』 | トップページ | ファイルの末尾がわからない »