根据 URL 散列和 Javascript 设置所选选项
Set selected option based on URL hash with Javascript
<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
,因为它会自动从 url 中提取信息。我知道这很简单,我只是不太了解 JavaScript 无法自己将其组合起来。
您通常只听 hashchange 事件
window.addEventListener('hashchange', fn, false);
window.onload = fn; // fire on pageload
function fn() {
document.getElementById('mySelect').value = window.location.hash.replace('#','');
}
<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
,因为它会自动从 url 中提取信息。我知道这很简单,我只是不太了解 JavaScript 无法自己将其组合起来。
您通常只听 hashchange 事件
window.addEventListener('hashchange', fn, false);
window.onload = fn; // fire on pageload
function fn() {
document.getElementById('mySelect').value = window.location.hash.replace('#','');
}