• ベストアンサー

PHPの外部テキストファイルにJavaScriptを記述する方法

PHP初心者です。今、Let'sPHPさんのP++BBSを利用して掲示板を作成しているのですが、JavaScriptが動作せずエラーになって困っています。P++BBSは、 --------------------------------------------------- define("HEADFILE", "skin/head.txt");  //定義 include(HEADFILE); //表示 --------------------------------------------------- のようにして、外部テキストにHTML<html><head>~</body></html>までを分割記述し、表示する各場所に定数呼び出しするタイプの掲示板です。 問題は、外部テキストのヘッダー部に <script type="text/javascript" src="my.js"></script> と記述しても反映せずエラーになってしまうことです。PHP内に直接記述すると正常に動作するのですが、どうにかスキンを活かした方法で使用したいと思っています。 使用したいJavaScriptの関数は、<body onload="関数">と、<a href="" onmouseover="関数" onmouseout="関数">の2種のみです。 初心者の質問で申し訳ありませんが、ご助言いただけると嬉しいです。よろしくお願いします!!

  • PHP
  • 回答数3
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
noname#87667
noname#87667
回答No.2

my.jsはどこに置かれていますか? 少なくとも、jsファイルはドキュメントルートの下に置かないと動作しないと思います。

arufuu
質問者

補足

回答ありがとうございます。 ためしに、全て同階層にして、リンクもつなぎなおしてみたのですが、やはり<body onload="">を記述した箇所がエラーになってしまいました。本体のPHP内にJavaScriptを記述して、function MyImage0 { MM_SwapImage('Image0','','img.jpg',1);} と書いて、テキスト内のHTMLに記述したら、エラーがでませんでした。''を書くのがダメなんでしょうか?もしわかれば教えていただきたいです。

その他の回答 (2)

noname#87667
noname#87667
回答No.3

>やはり<body onload="">を記述した箇所がエラーになってしまいました。 あり得ないと思いますが、「print "<body onload="">"」とは書いてませんよね?この場合は「print "<body onload=\"\">"」とダブルクォーテーションの前にエスケープ文字「\」をつけないとエラーになります。

arufuu
質問者

補足

回答ありがとうございます。<body onload=\" \">でちゃんと記述していたのですが、どうしてもエラーでダメでした。仕方がないので別の方法で試してみようと思ってSpryで組み込みしたら、問題なく思ったとおりに動作させることができました。PHPはちょっと難しすぎたので、もう少し勉強しようと思います。ありがとうございました。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>エラーになってしまう まず、エラーとは何かを書くべきです。 今のままではありとあらゆるエラーを想定して回答しなくてはなりません。 具体的なエラーなどがわからないと意味のない回答になるでしょう。 すくなくとも外部jsファイルをphpから呼び出すとエラーになるという 症状は通例ではありえません。 どこか記述ミスなどボンヘッドがあると推測されます。 firefoxにfirebugなどをいれてチェックすると、かなり切り分けができる と思いますよ

arufuu
質問者

補足

回答ありがとうございます。すみません。エラー文を記述し忘れていました。以下、エラーの内容です。 ---------------------------------------------------------- // JavaScript Document function MM_swapImgRestore() { var i,x,a=document.MM_sr; for(i=0;a&&i0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i Parse error: syntax error, unexpected T_STRING in エラー場所 --------------------------------------------------------------- firebugの使用方法はあまりわからなかったので、表示されたエラー文のみ記述させてもらいました。シンタックスエラーと書いてあるので、スペルミスも確認してみたのですが、どうしてもわかりませんでした。お手数ですが、再度回答いただけると助かります。

関連するQ&A

  • javascriptの記述方法

    javascriptをhtml内に記述する時、 <script type="text/javascript> ~~処理~~ </script> だと思っています。 ただ、ボタンをクリックした時に、メッセージが表示される簡単なHTMLをonclickで作成する時  <input type="button" value="クリック動作確認" onclick="alert('ボタンがクリックされました')"> これだけで実行されます。(headタグにscript記述なしで動作確認。) なぜ、<script>記述がなくても動くのでしょうか? onclick等のイベントハンドラに動作を記述する際は、そういう物だと覚えておいたほうがいいのでしょうか? ※当然関数をonclickに使用する際は、onclick=関数(); と記述し、headのscriptタグに関数を記述すれば動くというのは分かっているのですが・・・。 なぜ、 onclick="alert('ボタンがクリックされました')" の場合は、noscript無しで、動作するのかが分かりません・・・。 ・onclick 属性 = javascript という判断をどこかでされているのでしょうか? その結果、noscriptに記述がなくても動く? ちょっと気持ち悪いので質問させて頂きました。 ご教授お願いします。

  • 外部ファイルにするとテキストが書き込めない

    こんにちは、javascript初心者です。 HTMLのtextarea内のテキストを変えたいのですが、HTMLにJSを埋め込むと動作するのですが、外部JSファイル読み込みだとなぜか何も表示されません。 なぜでしょうか。原因のわかる方、説明をどうかよろしくお願い致します。 ●HTML <head> <script src="test.js" type="text/javascript"></script> </head> <body> <form name="form1"> <textarea name="message" id="msg" rows="5" cols ="50"></textarea> </form> </body> ●JS window.onload = message(); function message(){ alert("hello");              //←これはちゃんと動作します。 document.getElementById("msg").value="hello"; //← 動作せず。 document.form1.message.value="hello"; //← これも上と同じく片方ずつ試しましたが、ダメでした。 }

  • 外部javascriptファイルをjavascriptから動的に呼び出したい

    呼び出し元のURLによって動作を変えたいJAVASCRIPTがあります。 普段外部のJAVASCRIPTを呼び出すときはよくこうするのですが <script type="text/javascript" src="js.php?key=url"></script> これでは「key=url」が固定になってしまいます。そこで下記のように <script> var commentname=document.URL; var str=encodeURIComponent(commentname); document.write('<script type="text/javascript" src="read.php?key=',str,'"><\/script>'); </script> document.writeを使って無理やり外部Javascriptファイルの呼び出しスクリプトを書いているのですが、この書き方はどうもエレガントさにかけるというか、いまいち気に入りません。 もっとほかに良い方法がある気がするのですが、調べてもわかりませんでした。おわかりになる方がいらっしゃったらご教示頂けないでしょうか。

  • 外部JavaScriptファイルから呼び出したい!

    ページを早く表示させるために、コピー&ペーストでスクリプトを外部ファイル化しました。 <script language="JavaScript" src="../js/menu.js"></script> ↑とコピペした外部ファイルへリンクさせ、その後、 <script language="JavaScript">mmLoadMenus();</script> と記述してある部分があるのですが、うまく呼びだせてないようでランタイムエラーがでます。 すべてのJavaScriptを1ファイル内に記述しているときはうまく動作しているのですが、外部ファイルに切り離すとエラーが出ます。 外部ファイル化したために、mmLoadMenus();が動作しないので、どなたか分かる方、アドバイスをお願いします!!

  • 複数の外部ファイルを参照するにはどうすればいいの?

    22歳男性です。 htmlに以下のように記述していますがうまく動作しません。 <html> <head> <script type=\"text/javascript\" src=\"js1ファイルパス\"></script> <script type=\"text/javascript\" src=\"js2ファイルパス\"></script> </head> <body> ・・・・・・・ 上記のように記述して外部のjsファイルを参照しようとしているんですがうまくいきません。js2ファイルは参照できるんですが、js1ファイルは参照できません。 また、記述順を変えてみると、js1ファイルは参照でき、js2ファイルが参照できなくなります。 この2つのjsファイルを参照するにはどのように記述するべきなのでしょうか?

  • Javascript から PHP を呼び出したい

    お世話になります。 html 内の Javascript から PHP を呼び出して表示したいと思っています。 ローカル環境で試したところ表示されたのですが、借りている lolipop のサーバへアップしてみたところ表示されませんでした。 何か固有の設定や根本的に間違っている!などありましたらご教示いただけないでしょうか。 以下、試した内容です。 test.html を実行し a.php を呼び出して表示したいです。 ローカルでは test.html を読み込むと [aaa] と表示されたのですが・・・。 [test.html] <html> <head></head> <body> <script type="text/javascript" src="http://example.com/a.php"></script> </body> </html> [a.php] <?php header("Content-type: application/x-javascript; charset=UTF-8"); echo "document.write(\"aaa\")"; ?>

    • 締切済み
    • PHP
  • macでjavascriptを記述するにはどのようにすればよろしでしょうか?

    使用PCはmacで テキストエディターに --------------------------- <html> <head> <title>sample001</title> </head> <body> <script type="text/javascript"> document.write("「こんにちは」"); </script> </body> </html> --------------------------- 上記のjavascriptを書きfirefoxで確認したのですが タグ全て表示されてしまいます 本来、画面に「こんにちは」しか表示されないはずなのですが どのようにすればjavascriptをmacで使えますでしょうか? ご存知の方いましたら教えてください。 お願いします。

  • JavaScriptをファイルに回す。(表現が不適かもしれませんが)

    JavaScriptをファイルに回す。 (表現が不適かもしれませんが) 通常、HTMLのページ構成は、 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>ページタイトル</title> </head> <body> </body> </html> が基本かと思われます。その中に、JavaScriptを組み込む際は、<head>~</head>内に記述して、<body>~ </body>内に何か表示するスクリプトなら、<body onLoad="hpopen()">などと記述しますよねぇ。 その、JavaScriptの<head>~</head>内の記述を、ファイル「*.js」にして、同じ動作をさせたいのですが、具体的にどうしたらいいのでしょうか?

  • javascriptを外部ファイルに置く方法

    スタイルシートを外部ファイルにおいてlinkで読み込んでいます。 ふとjavascriptもテキストタイプを変えてやればいくのではないかと 名案が閃きました。そこで下のようにしてみました。 <link rel="script" href="java.txt" type="text/javascript"> しかしダメでした。我ながらいいアイディアだと思ったのですが・・・ どうも調べてみたらlinkではいかないようでした。 外部にあるjavascriptを読み込む場合はどうすればいいのでしょうか。

    • ベストアンサー
    • HTML
  • javascriptの外部呼び出し

    ttp://cache-cache.tea-nifty.com/kids/2005/04/ec10_38ba.html このサイトのjavascriptを外部呼び出ししたいのですが、 どこからどこまでを記述して●●●.jsで保存して、 <script type="text/javascript" src="●●●.js"></script> と、呼び出せばいいのでしょうか? また、表示させたい場所(<body>~</body>の間)には どのように記述すればいいでしょうか?

専門家に質問してみよう