2017-04-24 8 views
12

観察Firefoxはキャッシュのみaltテキスト

広告スロットを含むHTTPSから提供単一ページのアプリケーションのWebページがありますから、画像は表示されません。これらの広告スロットはいくつかの入札ロジックで埋められ、広告はJavaScriptによってIFRAMEドキュメントに書き込まれます。

最初の負荷は広告イメージを示します。 https://tpc.googlesyndication.com/pagead/imgad?id=CICAgKDLu47R8QEQARgBMggW4D7gy4qb5g

ユーザーがページで操作すると、新しい広告入札が行われ、広告スロットが再読み込みされます。私たちの場合:同じsrc属性を持つimg要素がレンダリングされます。

他のすべてのブラウザ(Chrome、IE、Safari)は、このイメージをローカルキャッシュから取得して表示します。

そうではありません:Firefoxの(Windows版、Mac、バージョン52)は以下の通り動作しますそれは消え、それは正確に同一の画像ですけれども:

  • は、白い背景にaltテキストは
  • 画像が表示されていない示してい同じURLで
  • 開発ツールを使用して、img上のツールチップは
  • networを(私は正確にドイツ語のみのメッセージを知っている)「エラーローディングイメージ」について何かを言います画像を隠すことができ一切CSSアクティブ/変更がない

    • :k個のタブは(もなし304または「キャッシュから」)

    追加情報をこの画像上の任意の活性を示しません(実際にはこのimgのまわりにCSSは全くありません)。

  • は追加のJavaScript(例えば遅延ロード)
  • 存在なし広告ブロッカーすべてのリソースがエラーがページのコンソール
  • 最初のロードにログインしていないhttps
  • からロードされているが、無画像
  • 示していません他のすべてのブラウザの問題は、決してありません。

バグ(私はそれがだFireFoxのバグを想定)見ることができます次のページで

:広告が消え

http://bartelt.team.netzathleten-media.de/2017-03-30_MD-230-refresh-bug/

5秒後に(だけでFireFox)。

質問

あなたは私にいくつかは、この問題の原因何ができるか助言を与えることができますか?

onerror(広告サーバーからの)外部コードによって動的に作成されたイメージをデバッグする方法はありますか?

これは本当に奇妙で、私は非常にあなたの助けに感謝します。

+0

は、我々はいくつかのコードがHTMLレイアウトなどと連携してもらえます。 Thanks –

+0

興味深いのは、2番目のconsole.info( 'refresh')(setTimeout内)にブレークポイントを置いたときに、少し前に踏み込むと画像が一時的に点滅するか、テキストのみが表示されます。だからこそリフレッシュが起こっているように見えるにもかかわらず、それは独立して起こったようです。 – klvs

+0

これを解決したのが不思議です。 – klvs

答えて

4

本当に興味深い質問です。あなたの髪を引き抜かなければならない。コードを小さくしたソリューションを提供することは非常に難しいですが、私が観察したことを教えてくれるかもしれません。

観察1:

私もいくつかの他のブラウザでこれを試してみました。サファリ9.1.1(10.1では問題ありません)も失敗するようですが、より意味のあるエラーメッセージが表示されます。 CORSの問題とさまざまなブラウザがどのようにキャッシュしているかのように見えます。クロームでは、画像がFirefoxとSafariのどこにキャッシュされていないように見えます。コードが(広告内から)投票したときに、これらの「問題のブラウザ」が言うhttp://tpc.googlesyndication.comのコンテンツを読み込もうとしましたが、CORSに違反しています。なぜ最初にロードされるのでしょうか?ソースコードなしで言うのは難しい。

5秒後に別の広告が読み込まれるとどうなるか見てみたいと思います。

とにかく、ここでサファリからのエラーです:

Blocked a frame with origin "http://bartelt.team.netzathleten-media.de" from accessing a frame with origin "http://tpc.googlesyndication.com". Protocols, domains, and ports must match. dc — mtrcs_533746.js:50:368 (anonymous function) — mtrcs_533746.js:23:281 q — mtrcs_533746.js:85:503 sd — mtrcs_533746.js:23:233 wd — mtrcs_533746.js:24 nb — mtrcs_533746.js:26:154 (anonymous function) — mtrcs_533746.js:26:214 U — mtrcs_533746.js:22 (anonymous function) — mtrcs_533746.js:22:103 (anonymous function) — mtrcs_533746.js:84:424

観察2:

あなたはSSL経由でロードされたと言うが。とにかくサファリ9.1にはありません。上記のエラーを参照してください。 Your ssl certificate is all sorts of bad私はそれを修正することから始めます。自己署名されたようですか?とにかく、見てhere、それはCORS地獄に入れて与えることができるように見えます。

運が良ければ、これが役立つことを願っています。 CORSとSSLは本当に対処するのに苦労します。特に、最新のブラウザでは、httpsや混合コンテンツを使わない方が厳しくなります。

関連する問題