【发布时间】:2013-09-25 23:03:06
【问题描述】:
考虑:
<a href="some-page.html">Go</a>
对比:
<script>
$(function(){
$('a').click(function(e){
e.preventDefault();
var self = $(this);
window.setTimeout(function(){
window.location = self.attr('href');
}, 1000);
});
});
</script>
<a href="some-page.html">Go</a>
显然第二个的目的是延迟重定向(特别是允许动画完成)。这对于禁用 JavaScript 的浏览器来说也很好。
但是是否存在任何特定情况下 JavaScript 链接会被浏览器拒绝以防止弹出窗口?如果是这样,哪些浏览器有问题?当您只是在自己的网站上导航时,是否可以采取一些措施来防止浏览器怀疑?
一个明确的答案或包含有关浏览器如何处理/拒绝页面重定向的任何知识的答案的链接会很棒。
【问题讨论】:
-
“但是是否存在任何特定情况下 JavaScript 链接会被浏览器拒绝,从而阻止弹出窗口” 不,因为它不是弹出窗口。但是,这会破坏链接的默认功能,因为您无法在新选项卡中单击它以在新选项卡中打开,我觉得这很烦人。绝对不值得仅仅为动画而做。这是我建议使用同步 ajax 调用而不是在成功时执行 window.location 的异步调用的少数情况之一。
-
@KevinB:呵呵。我从来没有意识到中键点击链接有什么作用。我总是右键单击并选择“在新选项卡中打开”。这很漂亮。虽然可以制作 JS,以便只有主(左)按钮触发延迟/等。
标签: javascript jquery browser href