人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

jQueryはIEにおいてGETを受け取れない?

GETの意味を履き違えていたらごめんなさい。
つまり具体的に言うと
例えば、
<h3><a href="hoge.htm?uid=1">page1 動作1</a></h3>
<h3><a href="hoge.htm?uid=2">page1 動作2</a></h3>
というリンクがあったとして、hoge1.htmではアコーディオン表示のjQueryプラグインを使っており、uid=1の時は項目1を展開した状態で、uid=2の時は項目2を展開した状態で、表示させたいのです。(?以降が無いときはuid=1と同じ動作)
そこで、(location.href)を使って取得しようと考えたのですが、IEではリンク先を表示したときに?を含む以降が省略されてURLを表示してしまい、うまく取得できないようです。
(FireFoxでは、?以降のURL表示がされており問題なく想定どおりの動作をしていました)

考え方が間違っているのか、そもそもIEでjQuery(javascript全般含む)がGET(URLの?以降)を受け取ることができないのでしょうか?
稚拙ではありますが、参考までに自身で作った受取側のソースを自前のテストサーバーに貼っております。
(そもそもこれはGETではなく、単純にURLの?以降を読み取っているに過ぎないとは思いますが・・・)

http://tw2.ryu-net.info/test.js.txt

●質問者: ryuvay
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● だわかき
●50ポイント

IEでもGETパラメータは取得できます。
? でsplitしているのがおかしいように思います。
下記サイトのソースを参考にしてみて下さい。
http://blog.digital-assist.net/?p=110


ryuvayさんのコメント
参照サイトではindex()を使っていますが、今回パラメータはひとつしかないのため「?」でsplitでも問題ないです。 で、申し訳なかったのですが、原因はまったく別のところにあって <h3><a href="hoge.htm#1?uid=1">page1 動作1</a></h3> <h3><a href="hoge.htm#2?uid=2">page1 動作2</a></h3> というように試行錯誤していた時の「#」が挟まっていてIEでは#以降は全く別の扱いになってしまうようで、それが原因でした。 お騒がせしてすみません。

2 ● holoholobird
●250ポイント ベストアンサー

>jQueryはIEにおいてGETを受け取れない?
そんなことはありません。IRでもGETは受け取れます。
GETを取得するときには、window.location.searchを使いましょう。
http://phpjavascriptroom.com/?t=js&p=location4

取得後の文字列を&や=で区切ることにより、該当するパラメータを手に入れられます。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/split


ryuvayさんのコメント
なるほど、この場合location.hrefより、location.searchが正しい使い方であること、勉強になりました。 ありがとうございます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ