2013-03-21 3 views
7

Google Chromeは、最近、v25が302リダイレクトヘッダーを尊重しなくなり、ページの更新時にフォームデータをうれしく再投稿しますが、v24や他のすべてのブラウザはうまく再生できます。私はこれが単なる一時的なブラウザのバグかどうか分からないので、解決しようとしている謎を説明しましょう。Google Chromeのポップアップブロッカーは、画像やその他のタグが含まれているとリンクを撃退するのはなぜですか?

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

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

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

これは、それが不正なポップアップウィンドウとして撃墜されたクロムを除いて、どこでも働いていました。興味深いことに、私がクリックし続けると、Chromeが心を変え、とにかく(タブとして)リンクを開くようにしました。これは必ずしもそうではありませんでしたが、リンクが死んでいる場合もありました。実験(と簡単なtarget="_blank"onclickから変更した)私はリンクが殺された理由は、クリックイベントが<a><img>タグから始まっていることであることを発見したの数時間後

<img><span>に置き換えて、テキストが含まれていて、<span>をクリックしたときにリンクが開けませんでした(Chromeはこれを不要なポップアップと認識しました)。しかし、<a>タグ自体をクリックしたとき詰め物)、それが受け入れられ、新しいタブが生まれました。

最後に、画像をCSS背景として追加しました。<a>タグは空のままです。すべては、このマークアップを持つすべてのブラウザで今動作しているようだ:

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

リンクはタグが含まれている場合、それが新しいタブとして開かれてから禁止されていることを、Google Chromeのロジックの背後にある理由は何ができますか、それが空の時、それは先に行くことができますか?いくつかのテストの後

+0

私の推測では、Chromeは、ウェブユーザーがポップアップとして終わるリンクをクリックするという一般的な方法をブロックしようとしています。主に、サイトがフルページのトランスペアレントイメージを作成したときにそのリンクです。表示されませんが、基になる要素をクリックしようとしているときにクリックします。しかし、これはちょうど推測です... – chrixbittinx

+0

影響を受けるタグにバインドされた他のイベントはありますか?これは、ポップアップブロッカーの動作に影響する可能性があります。あなたがデモページを提供できるなら、非常に役に立ちます。 – mrks

+0

また、Inspector(Sources)のEvent Listener Breakpointsをアクティブにして、要素をクリックしたときに発生するイベントの種類をお知らせください。 – mrks

答えて

3

  • クロームバージョン - 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> 
    '; 
?> 

問題は、あなたのページにする必要があります...

EDIT:BUG検索 私は、この問題での報告と修正されたバグの検索が、何かを見つけるcouldntの。

+0

同じですが、Chromiumバージョン25.0.1364.160で動作します。Ubuntu 13.04(25.0.1364.160-0ubuntu1b1) – NoBugs

+2

最近、別のサイトで同じ問題が再現されました。サードパーティの解析用JavaScriptライブラリには、奇妙な忍者のバグ。 – Wabbitseason

+0

と同じですが、これを引き起こすadobe analytics lib – anson

関連する問題