Top > Blog > CrossBrowser

IE6でPDFファイルが開けない謎

EC-CUBE 2.3.4 での話。

IE6で管理系の帳票を表示させようとすると、

PDF表示時のエラー「この文書を開くときにエラーが発生しました。このファイルが見つかりません。

とエラーが出て、PDFを開けません。

テンプレートファイル /data/Smarty/templates/default/admin/order/pdf_input.tpl を見ると、

<script type="text/javascript">
<!--
self.moveTo(20,20);self.focus();

function lfPopwinSubmit(formName) {
  win02('about:blank','pdf','1000','900');
  document[formName].target = "pdf";
  document[formName].submit();
  return false;
}
//-->
</script>
となっていて、 about:blank あたりが、「ん?」と思う実装です。

しかしこれはこれで理由はあるみたいで、EC-CUBE開発Wiki – [EC-CUBE]IE6で帳票(PDF)が開けない にもいろいろ試した旨が書いてあります。

これの解決策としては、EC-CUBE 開発コミュニティサイトで挙げられているもので、/data/pdf/fpdf.php に対して、

header("Cache-Control: ");
header("Pragma: ");
を適宜追加するのが正しいです。

HTTPヘッダを確認しても、これまで

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 35706
Content-disposition: inline; filename="doc.pdf"
Connection: close
Content-Type: application/pdf
と返ってきていたのが、
Cache-Control: 
Pragma: 
Content-Length: 35706
Content-disposition: inline; filename="doc.pdf"
Connection: close
Content-Type: application/pdf
となっているので、修正が正しく反映された事も分かります。

ところが、ところが、前述した pdf_input.tpl に記述してあるJavaScriptを、

<script type="text/javascript">
<!--
self.moveTo(20,20);self.focus();

function lfPopwinSubmit(formName) {
  win02('about:blank','pdf','1000','900');
  document[formName].target = "pdf";
  document[formName].submit();
  return false;
}
//-->
//-->
</script>
のように、最後のHTMLコメント部分を二重化すると、HTTPヘッダの修正を行わなくても、IE6でPDFが表示出来ました…え?

ヘッダの修正は行っていないので、確認するともちろん、

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
のままです。なんだこれは・・・

全くもって謎です。とりあえずIE7, IE8, Firefox でもそのままで問題ありませんでしたが、なぜこれで動くのか、よく分かりません…。 気持ち悪いので、実際の対処はHTTPヘッダ修正を適用しましたが、HTMLコメントの二重化(しかも片手落ち)で動作した事が不思議でなりません。

いまのところその理由までは突き止められてませんが、IE6のバグでしょうか。似たようなものは、「HTMLコメントがあるだけで、floatボックス内のテキストが複製されたように二重にレンダリングされる」をはじめとして、IE6バグは数え切れないくらいあります。
そんなIE6がいまだにシェアが大きいのは、悩ましいところです…




オープンソースECサイト構築ソフトEC‐CUBE(Ver2.4.0対応)公式ガイドブック カスタマイズ編
オープンソースECサイト構築ソフトEC‐CUBE(Ver2.4.0対応)公式ガイドブック カスタマイズ編福田 博一

秀和システム 2009-07
売り上げランキング : 9060

おすすめ平均 star
star評価は分かれているようですが…
starこの内容にしては少々割高感が・・・
starコピーしてくださいは笑える。

Amazonで詳しく見る
by G-Tools

コメントの投稿