2011-12-15 6 views
1

私がしたいのは、開いているタブごとにCOOKIEをインクリメントすることです。 COOKIE変数の管理はPHPで行いますが、これを整理しましたが、新しいウィンドウが開かれたかどうかを実際にテストする方法はわかりません(JavascriptまたはJquery)。どんなヘッドアップ?ありがとうございました!ウィンドウ上のCOOKIEをインクリメント

答えて

1

新しいウィンドウ/タブがサーバー側から開かれているかどうかはわかりません。ただし、開いているウィンドウからウェブサーバーに常に信号を送信することで(たとえば、X秒ごとにajax経由でページからサーバーにpingするなど)、それを推測することができます。

編集:

あなただけの新しいタブが唯一のクライアント側にされていることを検出したい場合は、あなたが行うことができますいくつかあります。

  • リンク/ボタンをユーザーがクリックすると、 (例えば、window.open()呼び出しを介して)そのクリックのために新しいウィンドウ/タブを開くと、通常はjavascriptのクッキーを増やすようにクッキーをインクリメントして、ウィンドウと同じ場所でそれを行います.open()呼び出し。
  • ユーザーが新しいタブでURLを入力すると、新しいウィンドウが開かれているとみなされます(たとえば、プログラムがウィンドウを開始する責任を負いません...アンカーを中央/シフトクリックした場合など)。 javascriptだけでは検出が難しくなります。 1つの方法は、local storageにフィールドを追加し、ページがロードされるとそれをインクリメントし、ページが閉じられるときにインクリメントします(アンロードイベントを受け取ります、window.onbeforeunloadなど)。次に、現在開いているウィンドウの数を確認するために、そのフィールドを読むことができます。残念ながら、これはIE(6 | 7 | 8)のようなより小さいブラウザでは動作しません。
+0

私はそれをサーバー側でやりたくありません。 JavascriptまたはJquery、タグが示唆するように、ありがとう! – Gabriel

関連する問題