2

HTML <select> と <option> を使用する IE でのみ奇妙な問題が発生します。コードは..

<select class="logo" name="logoControl" id="logoControl" tabindex="1" onChange="top.location.href=this.options[this.selectedIndex].value;" value="GO">
<option selected="selected" value="">My URL1</option>
<option value="http://google.com">My URL2</option>
<option value="http://facebook.com" >My URL3</option>
<option value="http://twitter.com">My URL4</option>
</select>

上記のコードは、アプリケーションのロゴと選択リンクであると想定されています。私のアプリケーションであるデフォルトの「選択された」リンクと、他の選択オプションは外部のWebサイトを参照します。これは、Firefox と Chrome でうまく機能します。一方、IE では、次の問題に直面しています。アプリケーション メニューのいずれかをクリックすると、適切な URL に移動します。しかし、その URL に移動した後、「My URL1」の上記の選択ボックスをクリックすると、ホスト名の後に 2 番目の「/」が表示されると、IE は URL を切り捨てます。つまり、メニュー URL が

"http://myhost.com/path1/path2.do?param1="

IEはそれを次のようにカットします:

"http://myhost.com/path1/"

アプリケーション メニューをクリックすると、正常に動作します。このエラーは、上記の最初の選択オプションのオンクリックでのみ発生します。つまり、IE は同じページにとどまらず、URL を 2 番目の「/」まで切り捨ててページをロードしようとします。

誰かがこの問題を解決するように私に提案できますか?

4

2 に答える 2

0

以下の 2 つの手順を追加して、これを間接的に修正しました。

1)最初の選択オプション、つまり「My URL1」を無効にします

<option selected="selected" value="" disabled="disabled">My URL1</option>

2) ロード時に、「My URL1」を「選択済み」にして、「My URL2」や「My URL3」などの他の URL に移動し、「戻る」ボタンをクリックすると、同じ場所に戻るようにします。 「My URL1」と選択ボックスのロゴにも「My URL1」と表示されます

document.getElementById("logoControl").options[0].selected="selected";
于 2013-05-25T19:07:26.207 に答える