リンクを新しいタブ、新しいウィンドウで開いたことを識別する方法


Webページのリンク先ページを表示する方法として、リンクを直接クリックするだけでなく、右クリックから「新しいタブで開く」「新しいウィンドウで開く」で開いたり、新しいタブ（ウィンドウ）を開いてアドレスバーにリンク先のURLを直接貼り付けるなど、様々な方法があると思いますが、どのような方法で表示したかを（サーバーサイドで）識別する方法はあるでしょうか？

  * 二重起動の抑止
  * 複数タブの識別

などが目的です。

リンクを直接クリックしたかどうかは、clickイベントでhref属性を書き換える（適当なパラメータを後ろにつけるとか）ことで分かりそうですが、他に方法があるでしょうか。




開かれるページに、次のようなJavaScriptを仕込みます。

[code]

    if (document.referrer) {
        if (history.length == 1) {
            alert('リンクから新しいウィンドウで開かれました。');
        } else {
            alert('リンクから同じウィンドウで開かれました。');
        }
    } else {
        alert('アドレスバーにURLを打ち込んで開かれました。もしくはブックマークから開かれました。');
    }
    
[/code]

この例ではalertですが、Ajaxなどでサーバに通知できると思います。




開かれるページに、次のようなJavaScriptを仕込みます。

[code]

    if (document.referrer) {
        if (history.length == 1) {
            alert('リンクから新しいウィンドウで開かれました。');
        } else {
            alert('リンクから同じウィンドウで開かれました。');
        }
    } else {
        alert('アドレスバーにURLを打ち込んで開かれました。もしくはブックマークから開かれました。');
    }
    
[/code]

この例ではalertですが、Ajaxなどでサーバに通知できると思います。

