« 日本でのiTunes始動は「アイチューンズ株式会社」から(BlogPet) | トップページ | 多彩な方面で活躍する菊地成孔とBlogの女王眞鍋かをりの対談 »

2005年7月18日 (月曜日)

JavascriptとBookmarkletとクロスブラウザで悩む話

 サイト更新をしばらく休んで、Bookmarklet作成にいそしむ今日この頃。で、悩みまくっている。

 あるサイトで公開されてたBookmarklet(ブックマークレット)を元に機能を加えていってるのですが。IEだとうまく動くものがFirefoxでは動かない。
 どうやら原因は、getAttributeNode。ページ内のaタグのhref属性を拾うのにgetAttributeNode('href').valueなんてするのですが、aタグにはアンカーとしての役割もあるので、必ずしもこの値があるとは限らない。
 これがない場合でも、IEは無視して続きをやってくれるのだけど、Firefoxはプロパティがないとかいうエラーでとまってしまう。そこで、getAttributeNode('href')が真かどうかを調べて(ifで判断)、その後の処理を行う、なんてしてみる。これで、OK。ここまででかなりの時間を費やす。

 じゃあ、Macでもテスト。IE、FirefoxともOK。ただし、Safariがだめ。ほげー。
 ページ内に記述してみると問題なく動作する。ということで、Safariが持ってない機能を使っているわけではなさそうだ。でも、BookmarkletにするとOUT。
 Syntaxなエラーとパースエラー(Parse error)なんてのがコンソールに出てくる(SafariはターミナルからDebugをONにしてある)。なんか、Bookmarkletならではの書き方、みたいのがSafariでは必要なのかなあ?

 と思ったりしてて。あとで気づいたのだけど、今回の用途の場合、getAttributeNodeではなくてgetAttributeで事足りることが後に判明。多少はIEの文字数制限も回避が楽に。これはこれで無駄な時間をすごしたなあ。
標準HTML、CSS&JavaScript辞典 どっちにしてもSafari問題が解決してない。とりあえず、メモ。参考にしてる本はDOMのことなんて書いてないので、別のを買うしかないかなあ。Webで検索するのにもつかれてきた。まあ、書籍に必要な情報があるかどうかはわからんけれども、一冊はリファレンスが必要だろうなあ。今持ってるJavaScript関連の本は「標準HTML,CSS&JavaScript辞典」ってのだけ。
詳解JavaScript辞典 書店で見た限りではSafariやFirefoxへの対応にも触れてて、しかもDOMについてもしっかり書いてそうなのは、「詳解JavaScript辞典」ってやつなんだけど、Amazonのレビュー(画像からリンク)はあまり評判がよくない。さて、どうしよう。


|

« 日本でのiTunes始動は「アイチューンズ株式会社」から(BlogPet) | トップページ | 多彩な方面で活躍する菊地成孔とBlogの女王眞鍋かをりの対談 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/35726/5021652

この記事へのトラックバック一覧です: JavascriptとBookmarkletとクロスブラウザで悩む話:

« 日本でのiTunes始動は「アイチューンズ株式会社」から(BlogPet) | トップページ | 多彩な方面で活躍する菊地成孔とBlogの女王眞鍋かをりの対談 »