我正在做一个选择框导航器,想知道是否更好地进行javascript重定向或提交表单并从那里重定向。每个人的利弊?
答案 0 :(得分:2)
如果您的意思是通过选择列表项来导航,则可以同时执行以下操作:
注意:上述方法直接进入目标网页。这与从服务器发送重定向不同,后者会产生额外的处理请求,会给操作增加额外的延迟,并且会有更多的请求由服务器处理。这是一个导航场景,没有必要为此服务器端(至少没有其他特定要求)。
答案 1 :(得分:2)
HTTP重定向:
JavaScript重定向:
在这种情况下,我倾向于使用Unobtrusive JavaScript来解决此问题:代码就像没有启用JavaScript一样(即发布表单的“Go”按钮);然后,在页面加载后,Javascript将隐藏该按钮,向选择框添加更改功能并发送AJAX请求以记录活动。
通过这种方式,你可以获得两个世界中最好的一面:)
答案 2 :(得分:1)
做这样的事情时要小心:
<select id="test" onchange="doAction();">
<option value='http://...'>...</option>
<option value='http://...'>...</option>
<option value='http://...'>...</option>
<option value='http://...'>...</option>
</select>
<script type="text/javascript">
function doACtion() {
window.location = document.getElementById('test');
}
</script>
由于IE用户尝试使用键盘导航选择将无意中触发操作,因此可访问性非常差。这对于残疾用户来说尤其麻烦,就好像你试图重定向他们一样,他们根本无法访问除第一个选项之外的其他任何内容。