【问题标题】:Set selected option based on URL hash with Javascript使用 Javascript 根据 URL 哈希设置选定的选项
【发布时间】:2015-04-26 11:28:24
【问题描述】:
<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>

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

所以:myname.com/#this

if location.hash == 'this' 然后将选项设置为与选中相同的值。

如果它正在检查location.hash,那么我不需要使用onload,因为它会自动从网址中提取信息。我知道这很简单,只是我对 JavaScript 的了解不够,无法自己组装。

【问题讨论】:

    标签: javascript forms url hash option


    【解决方案1】:

    你通常只听 hashchange 事件

    window.addEventListener('hashchange', fn, false);
    
    window.onload = fn; // fire on pageload
    
    function fn() {
        document.getElementById('mySelect').value = window.location.hash.replace('#','');
    }
    

    【讨论】:

    • 我试过这样: 它可以工作,除非我重新加载页面时,该选项会重置回 Apple。
    • 查看更新后的代码,或者将脚本标签放在DOM中的元素之后
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 2023-03-19
    • 2021-07-17
    相关资源
    最近更新 更多