2012-04-10 17 views
0

javascriptで生成されたリンクがあり、ユーザーが右クリックして新しいタブで開くことを選択できないようにするか、その操作を何も行わないことによってユーザーが開くことができないようにする必要があります。自分のサイトのリンクをブラウザの新しいタブで開くことを拒否/防止するにはどうすればよいですか?

アイデア?

編集: 私は、それが正しいかどうかを質問するのではなく、可能かどうかを知るために質問を提起しました。あなたが適切な答えで私を助けることができれば、そうでなければ私が解決する必要がない問題に私に提案を与えてはいけません。その姿勢をお詫び申し上げます。

+0

なぜそれをしたいですか? –

+3

Do not ....そうしないでください。あなたは本当のユーザビリティ混乱を作り出しています。 – Brad

+1

あなたができることは、不満と不便です。彼らが望むなら、彼らはその周りに道を見つけるだろう。あなたのページをすべて開かなくなる可能性が高い – Widor

答えて

1

これはできません。シンプル。不可能

3

JavaScriptが生成されたリンクがあります。ユーザーが右クリックして新しいタブで開くか、その操作を何もしないことで開くことができないようにする必要があります。

できません。正直言って誰もがこれを望む正当な理由はわかりません。タブでページを開いた結果は、ページを開くことと変わりありません。とにかく、あなたのサイトが1つのタブで開いているのか、別のタブで開いているのかを判断する方法はありません。

+0

...または別のブラウザで...またはブラウザで。 –

-2

これは、ページを右クリックすると無効にできます。 「新しいタブで開くリンク」はブラウザ固有の機能なので、右クリックメニューでその機能を選択的に無効にすることはできません。 右クリックを無効にするには、このスクリプトをWebページに挿入します。

<script language=JavaScript> 
    var message = "You cannot right Click on this page"; 
    function rtclickcheck(keyp){ if (navigator.appName == "Netscape" && keyp.which == 3) 
    { 
     alert(message); 
     return false; 
    } 
    if (navigator.appVersion.indexOf("MSIE") != -1 && event.button == 2) 
    { 
     alert(message); 
     return false; 
    } 
} 
    document.onmousedown = rtclickcheck; 
</script> 
+0

'navigator.appNameは、そのスクリプトは、人々はあなたがマウスの右クリックを無効にすることで、あなたの「ソース」を保護すると考えていた時から来ているように、「Netscapeは」'聞こえる==します。また、文書を読み込むことは非常に丁寧ではありません。 –

+0

@Manish Kumar - これはOPのための解決策ではありません。ユーザーはまだスクロールホイールまたはシフト+クリックまたはCtrl +クリックを使用することができます – Michal

+0

真剣に右クリックを無効にする場合は、少なくとも特定のリンクにあなたのUIのダメージを制限してください。あなたは何をしているかを知っていればブラウザゲームのために – apsillers

2

リンクを使用しないでください。代わりに<span>または<div>(またはそれに類似したもの)を使用し、ページをリダイレクトするクリックイベントハンドラをバインドします。一般的に

document.getElementById("mylinkdiv").addEventListener("click", function() { 
    window.location.href = "foo.html" 
} 

これはあなたのサイト機能ではJavaScriptが有効にされているに依存したくないので、悪いあるしかしあなたはすでにユーザーがリンクを参照するためにJavaScriptを必要としていることを言いました最初の場所。

+0

壊れやすいです – Gigala

関連する問題