2015-02-24 72 views
1
<select id="mySelect"> 
    <option>Apple</option> 
    <option>Orange</option> 
    <option>Pineapple</option> 
    <option>Banana</option> 
</select> 

<button onclick="myFunction()">Try it</button> 

<script> 
    function myFunction() { 
     document.getElementById("mySelect").options.selectedIndex = "2"; 
    } 
</script> 

此腳本在單擊按鈕時選擇「菠蘿」。我想做同樣的事情,除了它應該在刷新時立即選擇。此外,我不想使用selectedIndex,我想根據URL散列設置選定的選項。使用Javascript設置基於URL哈希的選定選項

所以:myname.com/#this

if location.hash == 'this'作爲選擇,則設定相同的值的選項。

如果它正在檢查location.hash,那麼我不應該使用onload,因爲它會自動從網址中提取信息。我知道這很簡單,我只是不知道JavaScript足以讓我把它放在一起。

回答

2

你會通常只聽hashchange事件

window.addEventListener('hashchange', fn, false); 

window.onload = fn; // fire on pageload 

function fn() { 
    document.getElementById('mySelect').value = window.location.hash.replace('#',''); 
} 
+0

我嘗試這樣做,像這樣: <體DIR = 「LTR」> <選擇ID = 「mySelect」> <選項值= 「蘋果」>蘋果 <選項值= 「橙色」>橙 它的工作原理,除了當我重新加載頁面,該選項重置爲Apple。 – BarryMode 2015-02-24 17:59:29

+0

查看更新的代碼,或將腳本標記放在DOM中的元素後面 – adeneo 2015-02-24 18:01:40

+0

太棒了!推遲腳本運作良好。 – BarryMode 2015-02-24 18:02:55