2009-08-20 8 views
0

JavaScript文字列window.locationを使ってクエリ文字列から値を取得するページがあります。 Webサーバから実行するとき、これは正常に動作しますが、私はそれがローカルアドレスバーIE6失われたクエスチング文字

c:\mysite\index.htm 

でこれを入れてIE6を使用して実行した場合、任意のクエリは、サイトが迷子に作成しwindow.locationがちょうど.htm件まで場所を含む文字列が含まれます。

上記の例ではクエリ文字列はありませんが、そのページはリンク先のページにリンクしています。これは、ネットワーク共有から実行しているときにも失敗します(例:\\server\mysite\index.htm)。それはIE7 +でうまくいくように見え、IE6でしか失敗します。

私は夢中になっています。

編集:私はこれがモーダルウィンドウで起こっていることを実感しましたが、何か違いがありますか?

+0

http://iedeathmarch.org/ – Havenard

答えて

0

モーダルウィンドウでローカルに実行している場合、IE6はクエリーストリングを無視しているようです。問題を回避するには、変数をクエリーストリングではなくダイアログの引数としてモーダルウィンドウに渡します。

0

これはIE6のセキュリティ上の問題です。私が考えることができるのは、HTMLファイルの代わりにHTAを使用することだけです。それはオプションですか?

0

window.locationは単純な文字列ではなく、フィールドを持つstructured objectです。クエリーストリングはwindow.location.searchです - 明らかにIE6は親オブジェクトを印刷するときにその部分を含んでいません。

+0

はい、私はこれを知っています。IE6はオフラインで実行すると検索テキストが緩んでいるようです – Gavin

+0

hm、それは厄介なことです。 –

+0

また、ファイルの場所の前にあるようです://これが実行される方法に違いがあるかどうかわからない – Gavin

4

スキーム 'ファイル'のURIに対してクエリ文字列が明示的に存在しません。 RFC1738を参照してください。 'file:' URIの最後に?クエリを置くのは意味がありません。

ページにスクリプトで使用できる余分な位置情報を含める場合は、#フラグメント識別子とlocation.hashを使用します。

関連する問題