• 締切済み

FireFoxでのCGIからのポップアップ表示

ある検索CGIにて、検索結果をポップアップウィンドウで出しています。 しかし、FireFoxで見た時だけ、ポップアップページがHTMLソースで表示されてしまいます。 そのポップアップのURLは、 http://www.example.jp/cgi-bin/search/test.cgi?~~~~~~ という形のURLになります。 IEでは普通に表示されるのですが、なにが原因でしょう? お分かりになる方いらっしゃいますか?

みんなの回答

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.3

ポップアップ、という事ですが、Web Developerを使って確認する時に 文字化けしたポップアップウインンドウではなく、元のページのヘッダ情報を見てしまったのではないですかね? 前回の説明ではポップアップウィンドウという事を忘れてツールバーから確認する説明をしてしまいましたが、右クリックメニューから確認する事もできます。 右クリックメニュー>Web Developer>情報>HTTPレスポンスヘッダを表示する (右クリックメニューにWeb Developerがなければ設定>表示設定で右クリックメニューが無効になってると思うのでこれを有効にする) で、とにかくLive HTTP Headersで見てtext/plainになってしまってるなら やっぱり検索結果を返すCGIのヘッダを出力する部分に誤りがあると思います。 サーバによってはCGIのミスをカバーしてContent-Typeが付けられていないと適当にtext/plainを補足する場合があるので、間違って出力している/出力できていない、の両方の可能性でミスを探してみてください。

-pig-
質問者

お礼

ありがとうございました。 ポップアップ後のページで見ても、text/htmlになっているのですが、やはりもうひとつのツールでヘッダー情報をキャプチャすると、 text/plainになってしまっております。 どちらにしても、この辺だと言うことが分かりましたので、 一度このスクリプトの開発元へHTTP ヘッダの出力部分の確認依頼をしてみます。 とても丁寧に詳細をご指示頂きありがとう御座いました。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

HTTPヘッダはブラウザとサーバの間で交わされる会話で、通常は意識する必要はないもので<meta>とは別のものです。 (<meta>はヘッダを補足するもので少し違います) HTTPヘッダを見る手段は色々ありますが、とりあえず、web製作でFirefoxを使ってるなら他の機能も含めてWeb Developerを利用する事をおすすめします。 http://www.infoaxia.com/tools/webdeveloper/ こちらからインストールして、Firefoxのツールバーから 情報>HTTPレスポンスヘッダを表示する で、Content-Typeの内容も確認できます。

-pig-
質問者

補足

再度ありがとうございました! metaとはちょっと違うんですね>< steel_grayさんの指示通りにWeb Developerを入れてみてみました。 下記がそのソースが見えてしまうページの結果です。 ===ここから=== Date: Tue, 16 Oct 2007 01:32:49 GMT Server: Apache Keep-Alive: timeout=10, max=150 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html 200 OK  ===ここまで=== これをみると、Content-Type: text/html となっています。 そして、気になるのがFireFoxで「ツール」→「ページの情報」を開くと、 MIMEタイプ text/plain 描画モード Quirks (後方互換)モード となっているのです>< ヘッダー情報でtext/htmlなのに、どうしてFireFoxだとtext/plainと認識しているのか・・・T_T もうひとつ同じようなツールを見つけまして、それで確認してみたところ、 Content-Type: text/plain となってしまっています。 同じようにヘッダを見るツールなのですが、ここで違いが出てしまうのが不思議です・・。 http://livehttpheaders.mozdev.org/installation.html よろしくお願い致します。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

検索結果を返すCGIのhttpヘッダ(Content-Type)に問題があるのかもしれません。 一般的にブラウザはhttpヘッダ中のContent-Typeがtext/htmlならそれとして解釈し、それ以外(例えばtext/plain)であればhtmlとしての解釈は行いません。 ただし、IEだけはContent-Typeを無視して中身がhtmlっぽかったらhtmlとして解釈してしまうというおかしな仕様をしています。 なので、検索結果を返すCGIが吐き出すContent-Typeが正しいかどうか確認し、違っていたらtext/htmlに修正してみてくだい。

-pig-
質問者

補足

ありがとうございました。 表示されるソースには、下記のようにきちんとなっているんです;; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> この表示されたソースをコピーして、sampleやsample.html等とファイルにしてアップロードすると、HTMLとして表示されます・・・。 引き続き確認事項があればお願いします><

関連するQ&A