<select> <option onclick="test('www.hao123.com')"value="www.hao123.com">hao123</option>
<option on click="test('www.baidu.com')" value="www.baidu.com">baidu</option>
<option on click="test('www.google.com')" value="www.google.com">google</option>
</select>
<script type="text/javas cript">
function test(s){
window.open(s);
}
</script>
這些代碼在Firefox下能正常運行;在IE下不能運行,且沒有報錯.java
最後發現了問題所在:在IE裏,select的option是不支持onclick事件的,而在Firefox和 OPERA 裏, option 是支持onclick事件的。
那麼應該怎麼實現原設定的功能?用Select元素的onchange事件。這時主要是考慮如何得到被選中的選項所表明的連接。
修改後代碼以下:google
<select id="friendLink" on change="test()>
<option value="www.hao123.com">hao123</option>
<option value="www.baidu.com">baidu</option>
<option value="www.google.com">google</option>
</select>
<script type="text/javas cript">
function test(){
var targetSlect=document.getElementById("friendLink");
var targetHref=targetSlect.options[targetSlect.selectedIndex].value;
window.open(targetHref);
}
</script>
雖然onchange在某些時刻能夠代替 option的click事件, 可是二者並沒有法作到徹底等價. 由於onchange只有在 你點擊的option和以前的option不一樣時纔會觸發. 當select當前選中的是第一項 而你再次點擊第一項時, select是不會被觸發的. 下面的代碼演示了一種間接實現 option onclick的方法 注意:此方案只適用於下拉方式的單選select.spa