3

CTRLリンクを + クリックして新しいウィンドウを開くときに、デフォルトの IE 7 機能を抑制することは可能ですか? もしそうなら、どのように?

ありがとう!

4

6 に答える 6

7

CtrlInternet Explorer で子要素のないリンクの + クリックを抑制する方法はありません。キーが押されたままonclickの場合、リンクのクリックに対してイベントはまったく発生しません。CtrlMicrosoft は、ユーザーを混乱させる恐れがあるため、この機能を変更することを望んでいないようです。

この回答を投稿する前に、何らかの公式の確認/説明を検索しましたが、残念ながら、この制限は MSDN のドキュメントに記載されておらず、Google は役に立ちませんでした。それにもかかわらず、それは真実です。自分で試してみてください。

<a href="#" onclick="alert('Hello');">Hello</a>

Ctrlリンクを + クリックしてもアラート ボックスは表示されません。pinkgothicによると、リンクに子要素を割り当てると問題が回避されます。例えば:

<a href="#" onclick="alert('Hello');"><span>Hello</span></a>

これが機能するのは、<span>要素に伝播する前に、まず要素に対してクリックがトリガーされるため<a>です。

于 2010-04-22T21:24:43.640 に答える
1

リンクテキストをスパンで囲みます。このような:

<a href="test.html"><span>click here!</span></a>
于 2014-02-04T10:01:13.303 に答える
1

jQuery のevent.preventDefault()メソッドまたは類似のメソッドを使用すると、管理しているページのデフォルトの動作をオーバーライドできます。

ブラウザとその動作は「ユーザーのもの」であるため、正当な理由なしにユーザーのブラウザの動作を変更することは一般的に悪い習慣です。

于 2010-04-22T20:59:42.487 に答える
1

opと同じ問題があり、アンカーhref属性に「#」と、対応するリンクの場所を含む追加のdata-href属性を与えることで解決しました。リンクをたどるにはクリックハンドラーが必要です。また、「新しいウィンドウで開く」を右クリックしても、このアプローチでは機能しません。

eg: In AnchorTag, Use href and data-ref as:
<a id="logout" href="#" data-href="${yourPath}"> 

And in javascript, use    
$("#logout").click(function(e) {
    if(e.ctrlKey) 
e.preventDefault();
window.location = $(e.target).attr("data-href");
});
于 2011-10-21T12:54:35.300 に答える
0

jquery を使用すると、ctrl+クリック機能を自分で処理し、false を返すことができます。たとえば、

$("a").click(function(event){
if(event.metaKey || event.ctrlKey){
 //handle over here 

return false;
}

});

これは、Mac を含むすべてのブラウザで機能します

于 2011-05-16T05:17:36.647 に答える
0

スクリプトをアンカーに追加して false を返す

<a href='some.htm' onclick='return false;'></a>

また、ツリービューがよりアクセスしやすくなるため、ツリービューでアンカーを使用することは有効です。

于 2010-04-22T21:16:59.620 に答える