dポイントプレゼントキャンペーン実施中!

単純に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です。

A 回答 (6件)

補足:


「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">
----
    • good
    • 1
この回答へのお礼

ブラウザの動作で、アドレス欄にjavascriptのURLを入力した場合はそのJavaScriptの内容が表示されて、動作するわけではない、と、いうことに気づきました。
私のプログラムは、どうやらそれに該当するようです。

ご指摘いただいた用例が正しい使い方のようです。

ありがとうございました。

お礼日時:2008/11/21 15:39

試したところ、下のならいけますね。


<?php
echo "<script type=\"text/javascript\" >";
echo "alert(\"test\");";
echo "</script>";
?>
    • good
    • 0

試してはないですけど、下記のように変えるだけでいけるとか?


header("Content-type: text/javascript");

この回答への補足

ご回答ありがとうございます。

どちらでも動作しなかったため、質問の投稿をいたしました。
とりあえず、取り急ぎ

補足日時:2008/11/20 17:44
    • good
    • 0

試してみたのですが、私の環境のせいか動作しませんでした。



PHPのエラーになったので、
echo "alert("test");";
↓内側の " を ' に変更
echo "alert('test');";
にしてみましたが、それでも期待の動作はしませんでした。

これを a.php と言う名前で作成していたのですが、
a.php をダウンロードする画面が表示されて、実行はされません。

ダウンロードすると、そのファイルの内容は、
alert('test');
となっていました。

まったくお役に立てる回答ではありませんが、
私の動作テストのお知らせです。
    • good
    • 0

確かに動作しますね。


私の理解がまったく間違っていました。
申し訳ありません。
    • good
    • 0

<?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表示されますが…

補足日時:2008/11/18 11:17
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!