javascript: 2009年9月まとめ

javascriptを利用すれば、ワンクリックでブラウザのお気に入り(ブックマーク)へ追加することができるスクリプトを書くことができる。しかし、まともに動くのはIE(たまにfirefox)だけの様に感じる。

ちまたに沢山サンプルソースが公開されているし、「ie、firefox、opera対応」となっているが、firefoxとoperaでは不具合がある点が、改善されていない。

firefox3.5

症状としては、[win & mac]firefox3.5では「お気に入りに登録する」ボタンで登録したリンクを実行するとサイドバーに読み込まれる。これは、「このブックマークはサイドバーに読み込む」のチェックを外せば正常に戻る。が、正常に戻すのは簡単ではないと思う。(実際自分自身もこのチェックボックスの存在は今回初めて知った。)

opera10

[mac]opera10は、登録ウィンドウが立ち上がるが、ブックマークに登録されていなかった or 見つけ出せなかった。

safari

[mac & win]safariは共に「お気に入りに登録する」ボタンは無効。javascriptではsafariを制御できないようです。(登録できないので、ある海外のサイトでは「ctrl + dを押してください」とアラートがでるようになっていた。)

vista + firefox2(2以外は未確認)

そして、vistaのfirefox2では「お気に入りに登録する」を押すと、登録ウィンドウが2個立ち上がる。ieとfirefoxの判断が両方とも効いてしまっているのだろうか。今回はそこは深く調べていない。

たまたまこんな形になった。これもなかなかいい動きかもしれないけど、やはり止まる。スムーズに動かす工夫が必要ですね。

やっぱ動きが不安定だなぁ。もろにブラウザの状態が影響しちゃう。

もろ理想通りの動き!サーバーにあげてもうまく動くか?
と思ったら、動かない。。
いろいろ調べたら、doctype宣言が原因だった。javascriptの方でleftの値に"px"を設定してなかった。後方互換モードの場合は"px"指定なしでも行ける。xhtml1-transitional.dtdだと"px"の記述が必須みたい。

window.onload = cli();

ではなく、

window.onload = cli;

が正解。これ便利だなあ。しかしなんで括弧を取ったんだろう。

あわせて読みたいブログパーツ