ユーザーのクリックストリーム全体を追跡するために、ユーザーが右クリックし、リンク上で [新しいタブで開く] (またはほとんどのブラウザーで中クリック) を選択すると、javascript イベントを発生させたいと思います。これらのリンクのほとんどは自分のサイトの外にリンクしているため、ブラウザの全体的なエクスペリエンス (ステータス バーなど) をできるだけ妨げないようにしたいと考えています。これを解決するためにどのようなオプションがありますか?
4 に答える
アウトバウンド リンクのヒットを確認する方法を検討している場合は、次の方法を試すことができます。
スクリプトを使用します。例 link.php?src= http://www.example.comをクリックすると、IP とユーザー エージェントの組み合わせごとにカウンターが増加します。ただし、これはステータス バーではあまりよく見えません。また、Web クローラーによって保存される可能性もあります。
邪魔にならない JavaScript を使用して、外部リンクにイベント ハンドラーを添付します。ホスト名が存在し、現在のホスト名と一致しない場合、それらが外部であるかどうかを判断できます。次に、このイベント ハンドラーを使用して、href を保存し、デフォルトのクリック イベントを防止し、最初のスクリプトと同じように数値を増やしてから、window.location を実際の href に送信します。もちろん、これは JavaScript が有効/サポートされていないと失敗します。
ユーザーがブラウザーで新しいタブを作成するには、さまざまな方法があります。
- 中クリック
- コンテキストメニュー
- マウスジェスチャー
- ツールバーの「新しいタブ」ボタン
- 「ファイル」>「新しいタブ」
残念ながら、これらすべてを処理する方法はなく、新しいタブを作成する可能性のあるより多くのユーザー アクションを処理する方法はありません。
中クリックのキャプチャは機能します。
君は
ブラウザのバージョンを確認する必要があります (ie6 では中クリックで何も開かれません)。
これら 2 つのイベントが同じ要素で発生するかどうかを確認するには、mousedown と mouseup を使用する必要があります。
どのボタンが押されたかを確認する必要があります。(たとえば、jQuery の「どの」関数)
同じ要素で mousedown と mouseup が発生すると、新しいウィンドウが開くので、リンクがクリックされたことがわかります。
単純なサーバー リダイレクトを実行して、取得したヒットをログに記録することもできます
。それとも js である必要がありますか?