使用Javascript根据URL哈希设置所选选项 苹果 橙色 菠萝 香蕉 试试看 函数myFunction(){ document.getElementById(“mySelect”).options.selectedIndex=“2”; }

使用Javascript根据URL哈希设置所选选项 苹果 橙色 菠萝 香蕉 试试看 函数myFunction(){ document.getElementById(“mySelect”).options.selectedIndex=“2”; },javascript,forms,url,hash,option,Javascript,Forms,Url,Hash,Option,此脚本在单击按钮时选择“菠萝”。我想做完全相同的事情,除了应该在刷新时立即选择它。另外,我不想使用selectedIndex,而是想根据URL哈希设置selected选项 所以:myname.com/#这 如果location.hash==“this”则将该选项设置为所选的相等值 如果它正在检查location.hash,那么我就不需要使用onload,因为它会自动从url中提取信息。我知道这很简单,我只是不太了解JavaScript,无法自己将其组合起来。您通常只需要听hashchange事件

此脚本在单击按钮时选择“菠萝”。我想做完全相同的事情,除了应该在刷新时立即选择它。另外,我不想使用
selectedIndex
,而是想根据URL哈希设置selected选项

所以:
myname.com/#这

如果location.hash==“this”
则将该选项设置为所选的相等值


如果它正在检查
location.hash
,那么我就不需要使用
onload
,因为它会自动从url中提取信息。我知道这很简单,我只是不太了解JavaScript,无法自己将其组合起来。

您通常只需要听hashchange事件

<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>

我这样尝试过:window.addEventListener('hashchange',fn,false);fn();//启动pageload函数fn(){document.getElementById('mySelect')。value=window.location.hash.replace('#','')}Apple Orange它可以工作,除非我重新加载页面时,选项会重置回Apple。请查看更新的代码,或者将脚本标记放在DOM中的元素之后
window.addEventListener('hashchange', fn, false);

window.onload = fn; // fire on pageload

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