2016-03-19 12 views
0

以下の動作を理解しようとしています。アンカーターゲット_blankがブラウザによってブロックされています

私はシンプルなアンカータグを作成しました:

<a href="/example/link" target="_blank"> 
    <img src="/images/layout_open.png"> 
    <span class="open-new-tab">Open in new tab</span> 
</a> 

更新:これら<a>タグが非同期で作成されます。 AJAXリクエスト後、JSは<a>というタグを作成します。

問題はGoogle Chromeが、代わりに開くタブを妨げになるようにブロックすることです。

この現象を回避するにはどうすればよいですか? 私は<a>タグにデータ属性を追加し、jQueryを使ってイベントをバインドし、JSを使用して新しいウィンドウを開くことができる他のStackOverflowの質問を読んでいます。

私の理解できないことは、私の例ではうまくいかず、他のサイトではブロックされていないからです。同じドメインとホストにリンクしています。

スパンやimgを押すと、バブリングフェーズでイベントが発生し、それが直接アクションではなく間接的なアクションである可能性があると私は結論づけました。

これはどのような原因ですか?どのように回避できますか?

おかげ

更新:

を私は解決策を見つけたと思います。問題は、画像に以前にはなかったonclickイベントが付いていることです。ただ、このような:

<a href="/example/link" target="_blank"> 
    <img src="/images/layout_open.png" onclick="showFullImage()"> 
    <span class="open-new-tab">Open in new tab</span> 
</a> 

私はまだこれを試していないが、@Sideriteが示唆されているように、そのブロックは、通常のブラウザの動作ではありませんでした。だから私は、Google Chromeはこれを間接的な行動としてマークすると思います。

私は明日お試しになり、アップデート番号でお知らせします。 2

ありがとうすべて

+1

問題なく動作するはずです。 –

+1

ユーザーアクションではなくコードでクリックしていますか? – epascarello

+0

イメージまたはスパンをクリックした後。私はJavascriptでclickイベントを呼び出すことをクリックしません。 –

答えて

2

これは、ブラウザの正常な動作ではありませんが、可能性が高い積極的にポップアップをブロックしようとする拡張。

Chrome拡張機能を確認するには、chrome:// extensions/urlにアクセスしてください。

+0

私の質問が更新されました。 –

+0

私の答えは立っています。 DOMをどのように変更しても、最終的にイメージとスパンを含むアンカー要素があります。それをクリックすると、別のウィンドウまたはタブでページが開きます。これは、ブラウザのデフォルトで非常に基本的な機能です。だからあなたはそれをブロックする拡張子を持っているか、それをクリックするといくつかのJavascriptコードが実行され、それがブロックされます。 –

+0

私はシデリテと立ちます。すべての拡張機能を無効にして、コードを実行してください。 – IzzyCooper

関連する問題