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>

上面的代码应该是我的应用程序标志和一个选择链接。默认的“选定”链接是我的应用程序,其他选择选项是指外部网站。这在 Firefox 和 Chrome 中运行良好。而在 IE 中,我面临以下问题:当我单击任何应用程序菜单时,我会被定向到相应的 url。但是,在导航到该 url 后,如果我单击上面的“我的 URL1”选择框,IE 会在主机名后面看到第二个“/”时切断 URL。即,如果菜单 url 是

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

IE 将其削减为:

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

单击我的应用程序菜单,它工作正常。此错误仅在单击上面提到的第一个选择选项时发生。即,IE 不会保留在同一页面中,而是尝试将 URL 截断到第二个“/”并尝试加载页面。

有人可以建议我解决这个问题吗?

4

2 回答 2

0

您的 onchange 过多。尝试这个:

<select class="logo" name="logoControl" id="logoControl" tabindex="1" onchange="top.location.href=this.value">
    <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>
于 2013-05-25T17:44:32.377 回答
0

我通过添加以下两个步骤间接解决了这个问题:

1)禁用我的第一个选择选项,即“我的 URL1”

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

2)加载时,将“My URL1”设为“selected”,这样当我们导航到“My URL2”或“My URL3”等其他url时,点击“返回”按钮,我们就会回到相同的位置在“我的 URL1”中,选择框徽标也显示为“我的 URL1”

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