0

JavaScriptで生成されたリンクがあり、右クリックして[新しいタブで開く]を選択できないか、そのアクションをまったく実行しないことで、ユーザーがリンクを開かないようにする必要があります。

何か案は?

編集:私はそれが正しいかどうかを尋ねる質問を提起しませんでしたが、それが可能かどうかを知るために。あなたが適切な答えで私を助けることができるならば、してください、さもなければ、私が解決する必要のない問題への提案を私に与えないでください。態度でごめんなさい。

4

4 に答える 4

3

javascriptで生成されたリンクがあり、右クリックして[新しいタブで開く]を選択できないか、そのアクションをまったく実行しないことで、ユーザーがリンクを開かないようにする必要があります。

できません。正直なところ、これを欲しがる正当な理由もわかりません。タブでページを開いた結果は、単にページを開いた場合と同じです。とにかく、サイトが1つのタブで開かれたのか、別のタブで開かれたのかを判断する方法はありません。

于 2012-04-10T14:39:17.433 に答える
2

最善の解決策は、リンクの使用をまったく避けることかもしれません。代わりに、<span>または<div>(または同様のもの)を使用して、ページをリダイレクトするクリックイベントハンドラーをバインドします。

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

有効になっているJavaScriptにサイト機能を依存させたくないので、一般的にこれは悪いことですが、ユーザーが最初にリンクを表示するにはJavaScriptが必要であると既に述べてます。

于 2012-04-10T15:05:02.440 に答える
1

これはできません。単純。ありえない

于 2012-04-10T14:42:00.580 に答える
-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>
于 2012-04-10T14:42:48.993 に答える