Je pense

日々思うところを気の向くままに ... Since 17th January, 2006

 

◆ カテゴリー 「 PC & Internet 」 の記事 (最大 5 件/頁)

 
 
2006/03/05 20:28
 

昨日はこのエラーで優に 1 時間は時間を浪費してしまった。

ドキュメントの URL によって処理を変える JavaScript コードを書こうと、urlStr = document.location; で得た値 urlStr に対して pos = urlStr.indexOf("hoge"); と indexOf メソッドを使うとこのエラーが出る。 しかし、原因が全くわからない。 document.location で URL を取れることは事前に alert(document.location); で確認済みだったので、最初はブラウザのバグかと思ったのだが、どのブラウザでも同じエラーになるので、どうやらブラウザのバグではなさそうだ。

さんざん調べてやっと分かったのが、document.location は String ではなく Location オブジェクトを返すということ。 一方、indexOf は String のメソッドで Location オブジェクトのメソッドとしては存在しないから、この記事のタイトルにあるようなエラーになってしまうのだ。

正しくは urlStr = document.location.href; とするべきだった。 Location オブジェクトは href プロパティを持っていて、これは string なので安心して indexOf を使える。 そもそも document.location は String を返すものと思い込んでいたのが間違いのもとだった。 そのせいで原因調査に 1 時間もかかってしまったのだ。 思い込みってやつは恐い。

しかし我ながらこのブログって .... 唐突にアロマテラピーのネタが二つも続いたと思ったら、今度は PC・Internet 関係の記事が二つ。 統一性なさすぎ。 ごっちゃ煮もいいとこで、自分でもなにがなんだかワケわからん(^^;)

参考: Gecko DOM Reference

 
 

クロスブラウザ JavaScript を書くために、各種ブラウザの navigator プロパティなどを調べてみました。 JavaScript コードを書かない方は、読んでもまったく役にも立たなきゃ面白くもありません(^^;)

Search

Calendar

 07  << 2008/08 >>  09 
Sun Mon Tue Wed Thu Fri Sat
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 - - - - - -

Profile

でん助
当ブログの管理人・ でん助 のプロフィールは 「About the Author のページ」 をご覧下さい。

FC2 Counter

Since 11th March, 2006.

友達申請フォーム

Notices

本ブログのエントリーに対するコメントやトラックバックは予告なく削除されることがあります。 あらかじめご了承下さい。