0

次の onClick コードは、Chrome でのみ機能します。Opera と Firefox では、リンクを開かずにボタンをクリックすると非表示になります。

 <div>
    <button>
    <a  onClick="window.open('http://www.google.ro', 'sharer',
       'toolbar=0,status=0,width=500,height=325');" 
       href="javascript: void(0)"><img src=""/></a>
    </button>
</div>

JavaScript :

<script type='text/javascript'>//<![CDATA[ 
$(function(){
$("button").click(function() {
    $(this).parent().hide();

})
});//]]>  

JSFiddle リンク

この問題を解決するにはどうすればよいですか?

4

9 に答える 9

5

要素はa要素内で禁止されていbuttonます。

ボタン要素の W3.orgから:

インタラクティブなコンテンツの子孫があってはなりません。

ここではインタラクティブなコンテンツについて説明しますaその中に挙げられています。

アイデアは、ボタンが相互作用を処理するということです。そのため、ブラウザーは子孫にイベントを受信させないように許可されています。

あなたの場合、ウィンドウを開くアクションをbutton要素にバインドする必要があります。

于 2013-03-22T11:25:10.507 に答える
1

を削除し、に直接<a>バインドします。onClick<button>

于 2013-03-22T11:24:24.043 に答える
1

余分なマークアップは必要ありません..これを試してください

また、ディストロイによって与えられた優れた答えを見てください

<img data-href="http://www.google.ro" src="http://cdn1.iconfinder.com/data/icons/Futurosoft%20Icons%200.5.2/128x128/apps/vlc.png"/>

<script type='text/javascript'>
  $(function(){
    $("img").click(function() {
      $(this).hide();
      window.open($(this).attr('data-href'), 'sharer', 'toolbar=0,status=0,width=500,height=325');
    });
  });
 </script>

フィドル

于 2013-03-22T11:24:49.163 に答える
1

open メソッドを click 関数に入れてみませんか?

$("button").click(function() {
    $(this).parent().hide();
    window.open('http://www.google.ro', 'sharer', 'toolbar=0,status=0,width=500,height=325');
})

そして、あなたがそこにいる間、それを取り除きます<a>(ディストロイの答えを見てください):

<div>
    <button>
        <img src="http://cdn1.iconfinder.com/data/icons/Futurosoft%20Icons%200.5.2/128x128/apps/vlc.png"/>
    </button>
</div>

フィドル

于 2013-03-22T11:25:16.270 に答える
0

これは私の頭の上から外れていますが、これを試してください:

<div><input type="button"><a  onClick="window.open('http://www.google.ro', 'sharer', 'toolbar=0,status=0,width=500,height=325');" href="javascript: void(0)"><img src=""/></a></input></div>
于 2013-03-22T11:23:25.480 に答える
0

これは<a><button>

<button>
  <a  onClick="window.open('http://www.google.ro', 'sharer', 'toolbar=0,status=0,width=500,height=325');" href="javascript: void(0)"><img src=""/></a>
</button>

代わりにこれを試して、<a>タグを削除し、onclick()イベントをボタンに適用してください:

<button onclick="window.open('http://www.google.ro', 'sharer', 'toolbar=0,status=0,width=500,height=325');"><img src=""/></button>

フィドル

于 2013-03-22T11:25:10.700 に答える
0

タグがめちゃくちゃになっていて、クロムはそれを修正するのに十分素晴らしいです:)

これを試して:

<div><button onClick="window.open('http://www.google.ro', 'sharer', 'toolbar=0,status=0,width=500,height=325');" href="javascript: void(0)"><img src="http://cdn1.iconfinder.com/data/icons/Futurosoft%20Icons%200.5.2/128x128/apps/vlc.png"/></button></div>

http://jsfiddle.net/trefu/TVJWD/154/

于 2013-03-22T11:25:53.757 に答える
0

JavaScript で開いている新しいウィンドウを処理できます。

$("a").click(function(e) {
    e.preventDefault();
    window.open($(this).attr('href'), 'sharer', 'toolbar=0,status=0,width=500,height=325');
    $(this).parent().hide();
});

...そしてマークアップから JavaScript を削除します:-

<div><a href="http://www.google.ro"><img src="http://cdn1.iconfinder.com/data/icons/Futurosoft%20Icons%200.5.2/128x128/apps/vlc.png"/></a></div>

JavaScript を HTML から分離しておくことは、保守とバグ修正が容易になるため、ベスト プラクティスです。

また、フォーム要素内でリンクを使用しないでください。それがなくても問題なく動作するはずです:- http://jsfiddle.net/drmonkeyninja/TVJWD/165/

于 2013-03-22T11:26:10.180 に答える
0

onClick次のように、リンクの代わりにボタンでイベントをバインドします。

<div><button onClick="window.open('http://www.google.ro', 'sharer', 'toolbar=0,status=0,width=500,height=325');" href="javascript: void(0)"><img src="http://cdn1.iconfinder.com/data/icons/Futurosoft%20Icons%200.5.2/128x128/apps/vlc.png"/></button></div>

これは機能します。

于 2013-03-22T11:33:19.063 に答える