- 締切済み
header("Content-type: application/x-javascript;");が動作していない?
単純にPHPからJavascriptでalert()を表示させたいのですが、 <?php header("Content-type: application/x-javascript;"); echo "alert("test");"; ?> これを動作させると、 alert("test"); と、ブラウザで表示され、Javascriptが動作しません。 記述に誤りがあるのでしょうか? もしくはphp.iniで何らかの変更が必要でしょうか? ※ ブラウザはFirefox3.0、Win Macともに同様の動作でした。 ※ PHPのバージョンは5.x、WebサーバはWinはIIS、MacはOS同梱のApacheです。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- BellBell
- ベストアンサー率54% (327/598)
試したところ、下のならいけますね。 <?php echo "<script type=\"text/javascript\" >"; echo "alert(\"test\");"; echo "</script>"; ?>
- BellBell
- ベストアンサー率54% (327/598)
試してはないですけど、下記のように変えるだけでいけるとか? header("Content-type: text/javascript");
- dell_OK
- ベストアンサー率13% (776/5747)
試してみたのですが、私の環境のせいか動作しませんでした。 PHPのエラーになったので、 echo "alert("test");"; ↓内側の " を ' に変更 echo "alert('test');"; にしてみましたが、それでも期待の動作はしませんでした。 これを a.php と言う名前で作成していたのですが、 a.php をダウンロードする画面が表示されて、実行はされません。 ダウンロードすると、そのファイルの内容は、 alert('test'); となっていました。 まったくお役に立てる回答ではありませんが、 私の動作テストのお知らせです。
- yyr446
- ベストアンサー率65% (870/1330)
確かに動作しますね。 私の理解がまったく間違っていました。 申し訳ありません。
- yyr446
- ベストアンサー率65% (870/1330)
補足: 「header("Content-type: application/x-javascript");」 は次のようなケースで使います。 [hoge.php] <?php header("Content-type: application/x-javascript"); echo "alert("test");"; ?> [hoge.html] ---- <script type="text/javascript" src=hoge.php charset="utf-8"> ----
お礼
ブラウザの動作で、アドレス欄にjavascriptのURLを入力した場合はそのJavaScriptの内容が表示されて、動作するわけではない、と、いうことに気づきました。 私のプログラムは、どうやらそれに該当するようです。 ご指摘いただいた用例が正しい使い方のようです。 ありがとうございました。
- yyr446
- ベストアンサー率65% (870/1330)
<?php header("Content-type: application/x-javascript;"); echo "alert("test");"; ?> のみのphpファイるですか? だとすると、単に 「alert("test");」というソーステキスト を送出しているだけだから、ブラウザーはjavascriptの ソーステキストだからといって、実行しません。 <html> <body> <script type="text/javascript" > alert("test"); </script> </body> </html> 例えば、PHPでなくてもこのHTMLではalertしないでしょ。
補足
早々のご回答ありがとうございます。 上記HTMLは動作しませんか? FirefoxでもIE6でもalert表示されますが…
補足
ご回答ありがとうございます。 どちらでも動作しなかったため、質問の投稿をいたしました。 とりあえず、取り急ぎ