<script>
$(document).ready(function () {
$('#enter').click(function() {
$.post('setCookie.php');
});
});
</script>
<div id="enter">
<a href="http://www.mydomain.com">Enter</a>
</div>
点击回车时,应该转到mydomain.com并设置一个cookie。它适用于Firefox,但不适用于IE或Chrome。有什么想法吗?
答案 0 :(得分:2)
可能会在加载Chrome之前访问该网站。您可以在锚标记上将目标属性设置为“_blank”,也可以在$ .post完成后使用回调函数,如下所示:
<script>
$(function(){
$('#enter').click(function() {
$.post('setCookie.php',function(){
window.location = $('#enter a').attr('href');
});
});
});
</script>
<div id="enter">
<a href="http://www.mydomain.com" onclick="return false;">Enter</a>
</div>
答案 1 :(得分:2)
试试这个
$(document).ready(function () {
$('#enter a').click(function(e) {
e.stopPropagation();
var href = this.href;
$.post('setCookie.php', function(){
window.location.href = href;
});
});
});
答案 2 :(得分:1)
尝试
$('#enter a').click(function() {
编辑:你有一个POST
进行锚定点击,然后GET
进行锚点本身。接缝在浏览器上发生冲突。
为了获得更好的效果,请在设置Cookie后创建SetCookieAndRedirect.php
页面并执行重定向到网址。
答案 3 :(得分:0)
请记住.post()调用是异步的,因此函数的其余部分将继续在.post()在后台运行时流动。您需要在帖子中使用回调函数:如果您不想要错误检查,可以跳过if / else并只调用重定向。
$(document).ready(function() {
$.post('ajax/test.html', function(data) {
if (data.success === 'cookieset')
{
// redirect to page
window.location.replace("http://mydomain.com");
}
else
{
// put some sort of notification here that it wasn't set and decide what to do next
window.location.replace("http://mydomain.com");
}
});
});
就重定向而言,您可以使用:
模拟http重定向使用
window.location.replace("http://mydomain.com")
;
或模拟点击链接使用
window.location.href = "http://mydomain.com";
答案 4 :(得分:-1)
我会做
<a href="javascript:$.post('setCookie.php');window.location='http://www.mydomain.com'">abc</a>