• ベストアンサー

javascript

javascript で外部ファイルJSファイルを呼び出していますが動作しません、サーバーは,apacheです。 サーバー側の設定が必要なのでしょうか? ご存知の方教えていtだけますでしょうか? よろしくお願いいたします。 ローカルでのテストも動かないのですが、ちなみに今使ってるのはマックのOSXです。

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

  • ベストアンサー
  • peron
  • ベストアンサー率45% (43/95)
回答No.5

ナビゲーションメニューを作るのでしたら、このスクリプトでは出来ません innerHTML の中途半端な性格の為、リンクがききません ナビゲーションメニューでしたら下記URL 049にあります(著作の関係でスクリプトを記載出来ません) これを元に出来ないでしょうか? 教えて頂いたURLのメニューはスクリプトを自動作成するソフト(Dreamweaverかな?)を使ってらっしゃいますので、私では解析が不可能に近いです 蛇足ながら、 >まずonMouseOverでfunction info1を呼び出す はい その通りです 画像に適応するなら <A href="#" onMouseOut="info1(' ')" onMouseOver="info1('ヒミツやから、アカンねん<br>わかった?')"> <img src="画像" width="190" height="190"></A> となります 文字列を表示するのに3つの方法を使ってます まず、 DOM (Document Object Model: 文書構造制御モデル NN6以降、IE6以降、Mozilla)の判るヤツに対して if(document.getElementById){ document.getElementById("Layer2").innerHTML = a; } の部分でレイヤーに文字列aを表示しています IE4に対しては if(document.all){ document.all["Layer2"].innerHTML = a; } で、同じく表示しています NN4に対しては if(document.layers) { with(document.layers["Layer2"].document){ open() write(staTag + a + endTag) close() }} の部分で表示しているのですが、文字列を書き換えるとスタイルシートも無くなってしまうので、再度 staTag + a + endTag を使って書いています まず 049を試してみて下さい ご不明な点等ありましたら ご遠慮なく

参考URL:
http://home.impress.co.jp/books/urawaza/tipsbook2/
onoyoko
質問者

お礼

本当にありがとうございました。 とっても勉強になりました。 参考にいただいたページから試してみます。 また、わからない事があれば質問させていただきます。

その他の回答 (4)

  • peron
  • ベストアンサー率45% (43/95)
回答No.4

前回の回答を保存し、実行してください ※ NN4以上(NN6以上含む)IE4以上 Mozilla等で実行出来ます) これは文字列 わたしのヒミツ に対して マウスの動きにより <DIV id="Layer2" style="position:absolute; width:200px; height:50px; z-index:2; left: 10px; top: 150px; font-size: 10pt;line-height: 130%;">ここに解説が出ます </DIV> 上にそれぞれ定義された文字列を表示しています わたしのヒミツ はマウスが乗った時に文字列が表示されます わたしのヒミツ2 はマウスが乗った時のみ文字列を表示し、離れたら消えます わたしのヒミツ3 はマウスが乗った時に文字列を表示し、離れたら別の文字列を表示します まず どのタイプが良いか選んで下さい もちろん画像に対しても有効ですので 何に対してかも教えて下さい 段階を追って最終的に外部jsファイルにして行きたいと思います

onoyoko
質問者

補足

本当にありがとうございます。 わたしのヒミツ2を使用したいです、画像にマウスが乗った時点で、サブタイトル(サブリンク先)を表示をしたいと思っています。 理想はこのページのタイトルバーです。 http://www.orlybeauty.com/ 何となく理解できてきそうな気がしますが、簡単に自分理解して事を記載します。間違っていたら教えていただけますか? まずonMouseOverでfunction info1を呼び出す、 document.getElementById("Layer2").innerHTML = a;で値を入れて、write(staTag + a + endTag) 表示。片手にjavaの本を握りしめてがんばっています。

  • peron
  • ベストアンサー率45% (43/95)
回答No.3

ちょっと違うかも知れませんが、私が過去に回答した中に似たようなモノがあります 質問No,943254 ただし、上記はフィルターを使っている関係上IE5以上でしか動作しません 単純に説明文だけを表示するなら <HEAD lang="ja"> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Script-Type" content="text/javascript"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>スクリプト</TITLE> <SCRIPT type="text/javascript"> <!-- var staTag ="<P style='width:200px;height:50px;font-size:10pt;line-height:130%'>"; var endTag ="</P>"; function info1(a){ if(document.getElementById){ document.getElementById("Layer2").innerHTML = a; } if(document.all){ document.all["Layer2"].innerHTML = a; } if(document.layers) { with(document.layers["Layer2"].document){ open() write(staTag + a + endTag) close() }} } //--> </SCRIPT> </HEAD> <BODY> <DIV id="Layer1" style="position:absolute; text-align: left; width: 200px; height: 80px; z-index:1; left: 200px; top: 20px; font-size: 12pt;line-height: 180%;"> <A href="#" onMouseOver="info1('ヒミツやから、おしえられまへん')"> わたしのヒミツ</A><BR> <A href="#" onMouseOut="info1(' ')" onMouseOver="info1('ヒミツやから、アカンねん<br>わかった?')"> わたしのヒミツ2</A><BR> <A href="#" onMouseOut="info1('解説を参照して下さい')" onMouseOver="info1('ヒ・ミ・ツ だから~')"> わたしのヒミツ3</A></DIV> <DIV id="Layer2" style="position:absolute; width:200px; height:50px; z-index:2; left: 10px; top: 150px; font-size: 10pt;line-height: 130%;">ここに解説が出ます </DIV> </BODY> これをWinで言うメモ帳(Macは判りません でもスクリプトは共通ですから)に全く手を加えずにコピペしてください・・・・解説は次の回答で

  • peron
  • ベストアンサー率45% (43/95)
回答No.2

ローカルでも動かないという事で下記をチェックしてみてください ※ まずは すべてローカルで 1)<HEAD> <SCRIPT type="text/javascript" src="○○.js"> </SCRIPT> ○○はJSファイルのあるパス その○○が正しく設定されているか? 2)<HEAD> <SCRIPT type="text/javascript"> <!-- 外部JSをコピペ //--> </SCRIPT> にし、実行出来るか? JavaScriptはクライアントサイドでしか動きませんので、通常のファイルと同様なのでサーバーの設定は全く必要ありません 1)パスの指定は、通常のHTMLで画像を配置するのと同じ考え方です 例えばscript/data.js・・・scriptファイルにあるdataという名のjsファイル 2)JavaScriptが間違っている この場合 動作しないようでしたらそのスクリプトを載せて頂けると解決出来るかもしれません

onoyoko
質問者

補足

ありがとうございます。 スクリプトはとても長くてここにのせられませんが、 マウスを持って行くと下の方にサブタイトルが出る物を簡単に作成したいのです、更新などが面倒にならないようにです。 サンプルを見ると座標とかの設定とかが必要になっているのですが、もっと短く出来る方法はございますか? それかなにか参考になるページをご存じでしょうか? 宜しくお願いいたします。

  • betagamma
  • ベストアンサー率34% (195/558)
回答No.1

まず、そのjsファイルへのURLを、http://apacheの動いているホスト/jsファイルまでのパス などとブラウザに入力して,チェックしてください。jsファイルが取得できるでしょうか? JavaScriptは、完全にクライアント側で実行するものなので,apacheの設定は必要ないはずです。apacheからすれば、jpgファイルやgifファイルなどと同じで、指定されれば、必要なMIMEエンコードをしてクライアントに送るだけです。

関連するQ&A

  • JavaScriptの外部ファイル読み込み

    JavaScriptの外部ファイル読み込みについてご教授下さい。 現在、Webサイトを作ろうとPHPとJavaScriptをレンタルサーバーにアップしたのですが、 ローカルではPHPから外部ファイルのJavaScriptを読み込めるのに、 サーバーにアップするとPHPからJavaScriptを読み込めなくなってしまいます。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>TEST</title> <meta charset=utf-8" /> <script type="text/javascript" src="./js/jquery-1.4.2.min.js"></script> ・・・ 上記のようにしてもjquery-1.4.2.min.jsが読み込まれず、jQueryが使えません。 FireBugでスクリプトを確認すると以下のようなエラーが出ていました。 1Failed to load source for: http://xxx.my-sv.net/js/jquery-1.4.2.min.js ちなみに以下のようにJavaScriptファイルを開こうとするとブラウザは真っ白なのですが、 http://xxx.my-sv.net/js/jquery-1.4.2.min.js テキストファイルに変更したものだと中身を見ることができました。 http://xxx.my-sv.net/js/jquery-1.4.2.min.txt ブラウザはFireFox3.0.11とIE8.0の両方でダメでした。 なぜJavaScriptファイルだけ読み込めないのでしょうか。 ご教授お願いいたします。 ※ちなみに、別のレンタルサーバーにアップロードしたら問題なく読み込めました。 しかし、そこにはDBがなかったので、なるべく今のレンタルサーバーを使いたいのです。。

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

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

  • 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です。

    • 締切済み
    • PHP
  • JavaScriptがFirefoxで動かない・・・

    よろしくお願いいたします。 IEでは正常に動作するのですが、Firefoxで実行してみると ボタンを押しても何の反応もありません。 どのように変更すればFirefoxで動作するのでしょうか? よろしくお願いいたします。 <SCRIPT LANGUAGE="JavaScript"> <!-- function warning(){ alert("テストです。"); } //--> </SCRIPT> <FORM><INPUT type="button" value="ボタンを押して。" onClick="warning()"></FORM> 上記のコードを外部に独立させて・・・ 【コード】 <script type="text/javascript" src="sample3.js"></script> <input type = "button" name = "button3" value = "sample3" onclick = "Func3();"> 【sample3.js】 function Func3() { alert("js外部ファイル記述"); } です。 FC2ブログで活用したいのですが・・・ 改行の扱いは「HTMLタグのみ」に設定しています。 ご回答、よろしくお願いいたします。

  • ローカル環境でのアップロードテスト

    お世話になります。 is_uploaded_fileをローカル上でテスト行いたいのですがうまくいきません。(ファイルが空の状態です) 外部サーバでは正常にアップロードできます。 サーバまたはPHP側の設定でしょうか? マニュアル読むと、「クライアントマシン上での名前$_FILES['userfile']['name'] では動作しません。」とありますが この辺りが引っ掛かってるような・・・?? テスト用コード if ( ! is_uploaded_file($_FILES['upfile']['tmp_name'])) { $img_name = 'NO_FILE'; echo $img_name; exit(); } $_FILES['upfile']['error'])も試したのですがエラーコードも出力されません。 ローカル:WindowsXP、Apache 2.2.6、PHP 5.25 外部サーバ:Linux系、Apache 2.0、PHP 4.3.9

    • ベストアンサー
    • PHP
  • 外部JavaScriptの書き方

    外部JavaScriptの書き方 <script language="JavaScript" src="data.js"></script> 上記data.jsから、他サーバーの外部javascriptを読み出すには 以下のよな書き方で正しいでしょうか? document.open(); document.write('<script language="JavaScript" src="http://hoge.com/data.js"></script>'); document.close();

  • ブラウザによって異なる外部javascriptを適応させるには?

    現在作成しているページがあるのですが、 外部javascriptを読み込む仕様となっております。 ですが、javascriptがブラウザによって、 動作が異なることで頭を悩ませています。 ※firefox, ie6, ie7, operaの4つそれぞれ個別に指示したいと思っています。 従いまして、そこで考えたのが、推測なので、できるかどうかは分からないのですが、、、以下の2つの方法になります。 1.ブラウザ毎に一つのjsファイルを用意する。 →この場合、4つのブラウザに対応させる必要があるので、4つのjsファイルが必要になります。 →具体的な方法としては、一つの判別javascriptファイルを用意しておいて、その中でさらに4分岐させて、それぞれ別のjsファイルを読み込む? 以下がokweb内では、それらしいなと思いましたが、これはそのまま使うことができるのでしょうか。 http://okwave.jp/qa3365142.html 2.一つのjsファイル内で、ブラウザ毎に別々の命令文を書いておく。 →技術的に無理? おそらく、1番の方法が、私がネットで調べた限りは、有力そうなのですが、検索しても、非常に古い記事ばかりがヒットしました。 現在のトレンドともいうべき、最も信頼性の高いブラウザ判別の方法というのは何になるのでしょうか。 この場合、phpなど、サーバーサイドのプログラムは含まず、あくまでも、javascriptでの判別方法を具体的に助言していただければと思います。 宜しくお願いします。

  • javascriptとApacheの設定

    ローカルのマシンにApacheを設定後, テストのために簡単な javascript を含んだhtmlファイルをfirefoxから読み込もうとしたところ "Premature end of script headers" が出ました. 自身で調査しましたが,どうしても解決できません. 非常に困っております.どなたかご教授頂ければ幸いです. 【環境】 [OS]   Ubuntu 10.04 LTS [Apache] Version 2.2.14 (Ubuntu) [Apacheの設定] 初期設定でapache2.conf から (1) httpd.conf, (2) sites-available/default等が include されます. (2)のファイルのみ以下を変更しました: DocumentRoot /home/hoge/www/ ScriptAlias /cgi-bin/ /home/hoge/www/cgi-bin/ <Directory "/home/hoge/www/cgi-bin/"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> また mime.types には次の記述があります. application/javascript js text/x-perl    pl 【テストファイルの内容】 index.html 644 ************************************************************ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html> <head> <title>Test Example</title> <script type="text/javascript" src="/cgi-bin/test.js"></script> <script type="text/x-perl" src="/cgi-bin/first.pl"></script> </head> <body> TEST </body> </html> ************************************************************ /home/hoge/www/cgi-bin/first.pl 755 *************************************** #!/usr/bin/perl print "Content-type: text/html\n\n"; print "Hello, World."; *************************************** /home/hoge/www/cgi-bin/test.js 755 *************************************** document.write("Content-type: text/html<br><br>"); document.write("Hello World!"); *************************************** 【エラーの再現手順】 Firefox 3.6.13 から (1) http://localhost/test.html とした場合 TESTを出力しログにエラー [error] [client 127.0.0.1] Premature end of script headers: test.js, referer: http://localhost/test.html (2) http://localhost/cgi-bin/first.pl (出力正常) (3) http://localhost/cgi-bin/test.js (Internal Server Error) perl は大丈夫なのですが js がエラーになります.

  • javascriptの効かないサーバーはありますか?

    先日、完成したサイトをお客様へ納品しました。 会社のPCでチェックし、また客先のローカルでもチェックし大丈夫でした。 しかし、サーバーへアップするとロールオーバーが効かなくなりました。javasciptは外部から各ファイルにリンクさせています。ロールオーバーが効かない原因がわからず困っています。 これは、お客様のサーバーでjavascriptを効かなくさせるのでしょうか。サーバーにそのような設定ができるのでしょうか? サーバーについての知識がなくすみませんが、どなたかご存知でしたら教えてください。 よろしくお願いいたします(>_<)

  • 外部ドメインjavascriptとの通信

    WebAPIみたいなのを作りたくって、GoogleAdSenseとかを参考に色々やっていました。 そこで、別サーバにあるjavascriptファイルとPHPファイルを通信させて呼び出し元サイトにdocument.writeでデータを埋め込もうとしています。 構成としては、 (1)API呼び出し元サイト:from.html (2)呼び出されAPIファイル:api.js (3)api.jsと通信してデータを渡すphpファイル:sample.php 手順としては、 (1)では、  <script type="text/javascript" src="api.js">  として、APIファイルの呼び出し。 (2)と(3)では、  http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1411752859  を参考に、api.jsからsample.phpを呼び出す。  sample.phpではサーバ内のデータベース検索結果をapi.jsに返す。  受け取った値をdocument.writeでfrom.htmlに埋め込む。 上記の構成・手順で、全て同一サーバ内にあるときにはうまくいっていました。 しかし、from.htmlを別のサーバに移動させて動作させた時、 httpObj.status=0となってしまい、phpからデータが返ってこなくなってしまいました。 自分で調べた所、 ・両方のサーバでApache2は動いている ・<script type="text/javascript" src="api.js">のapi.jsの所は、ちゃんと置かれているサーバのアドレスも含めて書いている(もちろん、api.jsが呼び出すPHPファイル名も) ・from.htmlはhtmlファイルをダブルクリックなどしてるわけではなく、ちゃんとブラウザからHTTPでアクセスしている 「javascript httpObj.status 0」とかでググって出てきた原因を自分なりにチェックしてみたのですが、 中々うまくいかず苦労しています。 できれば具体的にどうすればいいのか教えて頂けると助かります。 宜しくお願いします。

専門家に質問してみよう