2011-08-09 26 views
1
<script> 
$(document).ready(function() { 
    $('#enter').click(function() { 
    $.post('setCookie.php'); 
    });  
}); 
</script> 

<div id="enter"> 
    <a href="http://www.mydomain.com">Enter</a> 
</div> 

Enterをクリックすると、mydomain.comにアクセスしてクッキーを設定することになっています。 Firefoxでは動作しますが、IEやChromeでは動作しません。何か案は?jquery:Chromeでこの機能が動作しないのはなぜですか?

+0

に.clickがアンカーに作用することはできません任意の理由をクリックしてシミュレート?そうでない場合は、jQueryのイベントの順序を処理する問題をすばやく回避できます。 –

+0

あなたは、ヘッダー(「場所:http://www.mydomain.com」)を追加し、setCookie.phpへのリンクを指示することができ、それが設定されています後? – bozdoz

+0

はい、私はそれをしました... – luqita

答えて

-1

私は

<a href="javascript:$.post('setCookie.php');window.location='http://www.mydomain.com'">abc</a> 
+0

どういう意味ですか? – luqita

+0

私は自分の答えに少し間違いを入れました。まだ:( – SBSTP

1

$('#enter a').click(function() { 

編集してみないと思います:あなたはアンカークリックで行くPOSTを持って、その後、アンカー自体にGET 。その縫い目はブラウザ上で衝突する。

さらに良い結果を得るには、SetCookieAndRedirect.phpページを作成し、Cookieを設定した後にURLにリダイレクトしてください。

+0

いやには、良いアイデアです。 – luqita

+0

編集した答えを働いていない – bozdoz

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> 
+0

おかげで、あなたはもう一度試してみたい場合は、Chromeで動作しますが、ない – luqita

+0

:(IEで私は少しそれを修正しました。これは、クロスブラウザをやってタフです時々。 – bozdoz

2

この

$(document).ready(function() { 
    $('#enter a').click(function(e) { 
     e.stopPropagation(); 
     var href = this.href; 
     $.post('setCookie.php', function(){ 
      window.location.href = href; 
     }); 
    });  
}); 
+0

おかげで、まだIE上で失敗し、Chromeで動作します... :( – luqita

+0

私はそれをクリックしたときにIE –

+0

上の誤り、リンクだけで、動作しないいただきました、それは私を無視します。これは、どちらかのクッキーを設定しません。 。 – luqita

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"); 
     } 

    }); 
}); 

window.location.replace("http://mydomain.com") HTTPリダイレクトの使用をシミュレートします。

またはリンク使用

window.location.href = "http://mydomain.com"; 
関連する問題