7

最近の Google Chrome は、v25 が 302 リダイレクト ヘッダーを尊重しなくなり、ページの更新時にフォーム データを喜んで再投稿するという点で少し奇妙です。これが一時的なブラウザーのバグなのかどうかはわかりません。解決しようとしている謎について説明させてください。

私の知る限り、HTML や JavaScript を使用してタブを開くことはできませんが、明示的にサイズを設定しない新しいウィンドウは、デフォルトでタブとして開きます。

最初に私はこれを試しました:

<a href="URL" onclick="window.open(this.href);return false">
  <img src="NICE IMAGE" alt="foo">
</a>

これは、許可されていないポップアップ ウィンドウとして撃墜された Chrome を除いて、どこでも機能していました。興味深いことに、私がクリックし続けると、Chrome の気が変わって、とにかくリンクが (タブとして) 開かれることがありました。ただし、常にそうであるとは限りません。リンクが無効なままになることもありました。

数時間の実験 (および からonclick単純な に変更target="_blank") の後、リンクが強制終了された理由は、クリック イベントが<img>内のタグから開始されたためであることがわかりました<a>。をテキストを含むに置き換えて<img>をクリックすると、リンクが開けませんでした (Chrome はそれを不要なポップアップとして識別しました)。それが受け入れられ、新しいタブが誕生しました。<span><span><a>

最後に、画像を CSS の背景として含めただけで、<a>タグは空のままでした。このマークアップを使用すると、すべてのブラウザーですべてが機能するようになりました。

<a href="URL" target="_blank" style="background:url('NICE_IMAGE'); height:XXX; width:XXX" title="Description"></a>

リンクにタグが含まれている場合、新しいタブとして開くことは禁止されていますが、空の場合は先に進むことができるという Google Chrome のロジックの背後にある理由は何でしょうか?

4

1 に答える 1

3

いくつかのテストの後:

  • Chrome バージョン - 25.0.1364.172 m: 正常に動作しました!
  • Chrome バージョン - 26.0.1410.43 m: 正常に動作しました!

タブを開く「通常の」方法は、新しいバージョンの両方で機能しています。テスト済み!

私のコード:

<?php
echo '
     <a href="http://www.google.com" onclick="window.open(this.href); return false;">
       <img src="http://static.adzerk.net/Advertisers/2565.png" alt="foo" />
     </a>
     ';
?>

問題はあなたのページにあるはずです...

編集: バグ検索 この問題で報告され修正されたバグを検索しましたが、何も見つかりませんでした。

于 2013-03-29T17:40:40.730 に答える