我在页面上有一些链接,需要让用户知道他们在单击链接时被重定向到外部源。如何拦截或显示一条消息“您正在被重定向到外部源”,该消息会停留 5 秒,然后将用户重定向到单击链接中的 URL?
问问题
2324 次
3 回答
3
阻止默认操作,弹出确认或带有 setTimeout 的对话框,并以编程方式重定向:
$('a.external').on('click', function(e) {
return ( confirm('you are being redirected to ' + this.href) );
});
请注意,这被认为是糟糕的用户体验,尤其是等待五秒钟重定向会使大多数用户离开?
于 2013-05-30T19:38:43.900 回答
3
上面的答案应该显示一个确认对话框,如果你想在所述时间之后重定向你会想要做这样的事情:
$('a.external').on('click', function(e) {
e.preventDefault();
$('.PopUpMessage').show();
var redirect = setTimeout(function(){
window.location.href = this.href;
}, 5000);
});
其中“.PopUpMessage”包含您的消息并且默认隐藏...
如果你想变得花哨,你甚至可以倒数秒......比如
此 HTML 将在您的消息中
<p>You will be redirected in<span id="sec">5</span></p>
并将这个 JS 放在链接点击函数中
var seconds = 5;
var count = setInterval (function(){
seconds--;
$('#sec').html(seconds);
}, 1000);
于 2013-05-30T19:42:40.787 回答
0
$(function(){
$("a").on("click",function(e) { // or use a class selector
if (this.hostname!=location.hostname) {
var URL = this.href;
$("#redirectMessage").fadeIn("slow");
setTimeout(function() { location.href =URL;},5000);
e.preventDefault(); // stop link
}
});
});
于 2013-05-30T19:43:54.680 回答