- ベストアンサー
ポップアップメニュー
Mac版ドリームウェーバーでHP作成をしているのですが、サーバーに上げる前にローカルでブラウザ(IE)で確認した時はポップアップメニューが表示されるのですが、サーバーに上げるとメニューが表示されません。何が原因なのでしょう??解る方、教えて頂きたいのですが......お願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
すみません。 完全に読み間違えていたようです。 ポップアップを表示させるページを、以下のソースに変えてみてください。 <html> <head> <script language="JavaScript"> <!-- function mmLoadMenus() { if (window.mm_menu_0905191741_0) return; window.mm_menu_0905191741_0 = new Menu("root",37,28,"Courier New, Courier, mono",12,"#ffffff","#000066","#000000","#ffffff","center","middle",8,0,1000,-5,19,true,true,false,0,true,true); mm_menu_0905191741_0.addMenuItem("WHITEのポップアップ"); mm_menu_0905191741_0.bgImageUp="mmmenu1_37x28_up.gif"; mm_menu_0905191741_0.bgImageOver="mmmenu1_37x28_over.gif"; mm_menu_0905191741_0.hideOnMouseOut=true; mm_menu_0905191741_0.bgColor='#333333'; if (window.mm_menu_0905190733_0) return; window.mm_menu_0905190733_0 = new Menu("root",51,28,"Courier New, Courier, mono",12,"#ffffff","#990000","#000000","#ffffff","center","middle",8,0,1000,-5,19,true,true,false,0,true,true); mm_menu_0905190733_0.addMenuItem("廃虚"); mm_menu_0905190733_0.bgImageUp="mmmenu1_51x28_up.gif"; mm_menu_0905190733_0.bgImageOver="mmmenu1_51x28_over.gif"; mm_menu_0905190733_0.hideOnMouseOut=true; mm_menu_0905190733_0.bgColor='#333333'; if (window.mm_menu_0905192343_0) return; window.mm_menu_0905192343_0 = new Menu("root",37,28,"Courier New, Courier, mono",12,"#ffffff","#000066","#000000","#ffffff","center","middle",8,0,1000,-5,19,true,true,false,0,true,true); mm_menu_0905192343_0.addMenuItem("ORANGEのポップアップ"); mm_menu_0905192343_0.bgImageUp="mmmenu1_37x28_up.gif"; mm_menu_0905192343_0.bgImageOver="mmmenu1_37x28_over.gif"; mm_menu_0905192343_0.hideOnMouseOut=true; mm_menu_0905192343_0.bgColor='#333333'; if (window.mm_menu_0905191958_0) return; window.mm_menu_0905191958_0 = new Menu("root",37,28,"Courier New, Courier, mono",12,"#ffffff","#000066","#000000","#ffffff","center","middle",8,0,1000,-5,19,true,true,false,0,true,true); mm_menu_0905191958_0.addMenuItem("GREENのポップアップ"); mm_menu_0905191958_0.bgImageUp="mmmenu1_37x28_up.gif"; mm_menu_0905191958_0.bgImageOver="mmmenu1_37x28_over.gif"; mm_menu_0905191958_0.hideOnMouseOut=true; mm_menu_0905191958_0.bgColor='#333333'; if (window.mm_menu_0905191323_0) return; window.mm_menu_0905191323_0 = new Menu("root",37,28,"Courier New, Courier, mono",12,"#ffffff","#000066","#000000","#ffffff","center","middle",8,0,1000,-5,19,true,true,false,0,true,true); mm_menu_0905191323_0.addMenuItem("他"); mm_menu_0905191323_0.bgImageUp="mmmenu1_37x28_up.gif"; mm_menu_0905191323_0.bgImageOver="mmmenu1_37x28_over.gif"; mm_menu_0905191323_0.hideOnMouseOut=true; mm_menu_0905191323_0.bgColor='#333333'; mm_menu_0905191323_0.writeMenus(); } // mmLoadMenus() //--> </script> <script language="JavaScript1.2" src="mm_menu.js"></script> </head> <body> <script language="JavaScript1.2">mmLoadMenus();</script> <table width="80%" height="50%" border="1" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="33"> </td> <td width="33"> </td> </tr> <tr> <td> </td> <td> </td> <td><font color="#99CCFF"> </font></td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td colspan="6" rowspan="4" align="center" valign="middle" nowrap> <marquee behavior="scroll" direction="up" width="200" height="90" scrolldelay="120" scrollamount="2"> <pre>只今工事中</pre> <pre>近日サイト移転予定</pre> </marquee></td> <td> </td> <td> </td> <td align="center" valign="middle" bgcolor="#990000"> <a href="#" onMouseOut="MM_startTimeout();" onMouseOver="MM_showMenu(window.mm_menu_0905190733_0,0,0,null,'RED');"><img name="RED" src="img/r/RED.gif" width="7" height="7" border="0" alt=""></a></td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td align="center" valign="middle" bgcolor="#000066"> <a href="#" onMouseOut="MM_startTimeout();" onMouseOver="MM_showMenu(window.mm_menu_0905191323_0,0,0,null,'BLUE');"><img name="BLUE" src="img/b/BLUE.gif" width="7" height="7" border="0" alt=""></a></td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td align="center" valign="middle"> </td> <td align="center" valign="middle" bgcolor="#FFFFFF"> <a href="#" onMouseOut="MM_startTimeout();" onMouseOver="MM_showMenu(window.mm_menu_0905191741_0,0,0,null,'WHITE');"><img name="WHITE" src="img/w/WHITE.gif" width="7" height="7" border="0" alt=""></a></td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td height="20"> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td align="center" valign="middle" bgcolor="#003333"> <a href="#" onMouseOut="MM_startTimeout();" onMouseOver="MM_showMenu(window.mm_menu_0905191958_0,0,0,null,'GREEN');"><img name="GREEN" src="img/g/GREEN.gif" width="7" height="7" border="0" alt=""></a></td> <td> </td> <td> </td> <td> </td> <td> </td> <td align="center" valign="middle" bgcolor="#FF9933"> <a href="#" onMouseOut="MM_startTimeout();" onMouseOver="MM_showMenu(window.mm_menu_0905192343_0,0,0,null,'ORANGE');"><img name="ORANGE" src="img/o/ORANGE.gif" width="7" height="7" border="0" alt=""></a></td> <td> </td> <td align="center" valign="middle"><a href="javascript:;"> </a> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> </table> </body> </html> mmmenu1_37x28_up.gif、mmmenu1_37x28_over.gif、mm_menu.jsなどについてはこのファイルと同じ階層に、RED、BLUE、ORANGE、WHITE、GREENの各画像ファイルについては、これは任意のディレクトリに置いて下さい。 一つのディレクトリにまとめておくと管理が楽でしょう。 img要素のURLの指定に注意してください。 ポップアップされるメニュー項目について、これをBLUE.htmlなどのように別のHTMLファイルとして書き出す必要はなく、一つのファイルにまとめておくのが良いようです。 私自身がDREAMWEAVERを使っていないのに、ちょっとでしゃばったせいで、大きな勘違いをしたみたいです。 大変失礼しました。 こちらでは、狙い通りかは解りませんが、一応動作することを確認をしています。 おそらくこれで解決できるのではないかと思います… これでまたうまくいかなかったら、本当に申し訳ありません…
その他の回答 (4)
一応確認ですが、ローカルでは狙い通りに動作しているんですよね? だとすると、やはり外部JavaScriptファイルが正常に読み出せていないのが原因と思います。 「エラー:”Menu"は定義されていません」というメッセージが出ているのは、mm_menu.jsファイル内にあるMenuという関数がうまく読み込まれていないということでしょう。 mm_menu.jsという外部JavaScriptファイルが生成されていると思いますが、これはアップロードされていますか? また、ポップアップメニューを表示させるHTMLファイルでは、「<script language="JavaScript1.2" src="mm_menu.js"></script>」この部分でmm_menu.jsファイルを読み出すようにしています。 src属性を見る限りでは、このファイルと同じディレクトリにmm_menu.jsファイルを設置する必要があるようです。 このファイルのサーバ上の設置位置は正確でしょうか? この点を確認して、サーバ上のファイルの位置を調整してみてください(もしくは、ファイル側のmm_menu.jsを読み出す部分のsrcに書いたURLを正確に書き直してください)。 ローカルで動作しているということであれば、この外部JavaScriptファイルを呼び出すsrcの指定のURLにファイルが設置されておらず、結果としてそのスクリプトを読み出せていないのが原因と思います。 おそらくこれで解決できるのではないでしょうか。 見当違いでしたら、ごめんなさい。
お礼
ありがとうございます。だめみたいです....。サーバーのディレクトリは次のようにしてあるのですが....public_html/img/b/(BLUE.gif,BLUE.html,mmmenu1_37x28_over.gif,mmmenu1_37x28_up.gif,mm_menu.js)/_notes/BLUE.gif.mnoというような感じでimgにそれぞれ5つ(red,blue,orange,white,green)ディレクトリを作成しています。srcの指定のURLもmm_menu.jsと書き直してみたのですが.....。
またまた失礼します。 「スクリプトエラーが発生しました。いくつかのスクリプトは正しく動作しない可能性があります。MicrosoftJScriptランタイムエラー: 回線:12 文字:10 エラー:”Menu"は定義されていません」 これは、スクリプト中でうまく定義できていない変数か配列か関数があるということのようです。 ページロード時にこれが出るということは、スクリプトの中に不備が出てしまっているように見えます。 こういうエラーが出た場合、大抵はそれ以降、そのページでのJavaScriptの動作はエラーだらけになると思います。 外部スクリプトファイルに切り分けているのではない場合は、そのファイルの論理行(改行コードで明示的に区切られる行、ウィンドウ幅での自動改行を含まない)で12行目にある部分、外部スクリプトに分けてある場合はちょっと場所が特定できかねますが、とにかくスクリプト中の「Menu」というオブジェクトが、定義されないままに突然出てきているものと思われます。 そのため、ページをロードしたときにスクリプトが正常に解釈されず、他のすべてのスクリプトの動作にも支障を来たしているのではないかと。 良ければ、読み出しているスクリプトの全てのソースを開示していただけますか? スクリプトの内容がわかれば、エラーの具体的な原因を特定できると思います。 あと、ポップアップメニューを表示させる部分、および、あればポップアップメニューとして表示させる内容(それぞれ複数あれば、その両方)のHTMLソースも合わせて補足いただけると、それも問題の解決につながるかもしれません。
お礼
ポップアップの方のソースは書ききれなかったので、回答No.2のところに補足しました。お願いします。
補足
ありがとうございます。スクリプトのソースはこのような感じです。<table width="80%" height="50%" border="1" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="33"> </td> <td width="33"> </td> </tr> <tr> <td> </td> <td> </td> <td><font color="#99CCFF"> </font></td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td colspan="6" rowspan="4" align="center" valign="middle" nowrap> <marquee behavior="scroll" direction="up" width="200" height="90" scrolldelay="120" scrollamount="2"> <pre>只今工事中</pre> <pre>近日サイト移転予定</pre> </marquee></td> <td> </td> <td> </td> <td align="center" valign="middle" bgcolor="#990000"> <a href="#" onMouseOut="MM_startTimeout();" onMouseOver="MM_showMenu(window.mm_menu_0905190733_0,0,0,null,'RED');"><img name="RED" src="img/r/RED.gif" width="7" height="7" border="0" alt=""></a></td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td align="center" valign="middle" bgcolor="#000066"> <a href="#" onMouseOut="MM_startTimeout();" onMouseOver="MM_showMenu(window.mm_menu_0905191323_0,0,0,null,'BLUE');"><img name="BLUE" src="img/b/BLUE.gif" width="7" height="7" border="0" alt=""></a></td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td align="center" valign="middle"> </td> <td align="center" valign="middle" bgcolor="#FFFFFF"> <a href="#" onMouseOut="MM_startTimeout();" onMouseOver="MM_showMenu(window.mm_menu_0905191741_0,0,0,null,'WHITE');"><img name="WHITE" src="img/w/WHITE.gif" width="7" height="7" border="0" alt=""></a></td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td height="20"> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td align="center" valign="middle" bgcolor="#003333"> <a href="#" onMouseOut="MM_startTimeout();" onMouseOver="MM_showMenu(window.mm_menu_0905191958_0,0,0,null,'GREEN');"><img name="GREEN" src="img/g/GREEN.gif" width="7" height="7" border="0" alt=""></a></td> <td> </td> <td> </td> <td> </td> <td> </td> <td align="center" valign="middle" bgcolor="#FF9933"> <a href="#" onMouseOut="MM_startTimeout();" onMouseOver="MM_showMenu(window.mm_menu_0905192343_0,0,0,null,'ORANGE');"><img name="ORANGE" src="img/o/ORANGE.gif" width="7" height="7" border="0" alt=""></a></td> <td> </td> <td align="center" valign="middle"><a href="javascript:;"> </a> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> </table>テーブルを細かくグリッド状に区切り、その中にスクリプトを作成しています。
補足読みました。 エラーメッセージが出ていないことがちょっと引っかかります。 スクリプトを見る限りでは、もし外部スクリプトが転送されていないとすれば、該当の部分にマウスが乗ったときに、関数が見つからないので「オブジェクトを指定してください」というような内容のエラーが出てくると思います。 現時点では、スクリプト内部で動作の制御が狙い通りに行かないようになっている(ローカルでは動いているとのことですので、この可能性は極めて低いと思いますが…)か、IEの設定でJavaScriptが動作しないようにされているかのいずれになるように思います。 とりあえず、ブラウザのJavaScriptの動作を設定する項目を見直してみて、JavaScriptの動作を許可するように設定しなおしてみてください。 IEの場合、参照するファイルのあるゾーンによってセキュリティ項目を別々に管理していると思うので、ローカルではJavaScript(アクティブスクリプト)が動作しても、インターネットゾーンでは動作を禁止していて、JavaScriptが動かないというケースもあり得るようです。 このあたりが疑わしいような気もしますが… 見当違いでしたら、ごめんなさい。
お礼
ありがとうございます。script関係のファイルをアップしても同じだったのですが、IEの設定でJavaScriptは有効になっていたのですが、scriptエラーの表示がオフになっていたのでエラー表示を有効にしたところ、サイトにアクセスした途端次の様なエラーが出、(スクリプトエラーが発生しました。いくつかのスクリプトは正しく動作しない可能性があります。MicrosoftJScriptランタイムエラー: 回線:12 文字:10 エラー:”Menu"は定義されていません)OKをクリックして、scriptの設定をしていた部分にカーソルを持っていくと、(スクリプトエラーが発生しました。いくつかのスクリプトは正しく動作しない可能性があります。MicrosoftJScriptランタイムエラー: 回線: 文字: エラー:オブジェクトが必要です) と出ます。前に1つのページにポップアップメニューを1つ作った時はうまくいったのですが、今回は1つのページに複数のポップアップメニューを設置したんです。それが原因だったりするんでしょうか???アップロードするときは一つずつディレクトリを作成するんですよね?文が意味不明になってしまったかもしれませんが.....。すみません
補足
ポップアップの方のソースは下記の様な感じです。赤<html> <head> <title>RED.gif</title> <meta http-equiv="Content-Type" content="text/html;"> <!-- Fireworks MX Dreamweaver MX target. Created Fri Sep 05 20:51:36 GMT-1500 2003--> <script language="JavaScript"> <!-- function mmLoadMenus() { if (window.mm_menu_0905190733_0) return; window.mm_menu_0905190733_0 = new Menu("root",51,28,"Courier New, Courier, mono",12,"#ffffff","#990000","#000000","#ffffff","center","middle",8,0,1000,-5,19,true,true,false,0,true,true); mm_menu_0905190733_0.addMenuItem("廃虚"); mm_menu_0905190733_0.bgImageUp="mmmenu1_51x28_up.gif"; mm_menu_0905190733_0.bgImageOver="mmmenu1_51x28_over.gif"; mm_menu_0905190733_0.hideOnMouseOut=true; mm_menu_0905190733_0.bgColor='#333333'; mm_menu_0905190733_0.writeMenus(); } // mmLoadMenus() //--> </script> <script language="JavaScript1.2" src="mm_menu.js"></script> </head> <body bgcolor="#ffffff"> <script language="JavaScript1.2">mmLoadMenus();</script> <a href="#" onMouseOut="MM_startTimeout();" onMouseOver="MM_showMenu(window.mm_menu_0905190733_0,0,0,null,'RED');"><img name="RED" src="RED.gif" width="7" height="7" border="0" alt=""></a></body> </html> 青 <html> <head> <title>BLUE.gif</title> <meta http-equiv="Content-Type" content="text/html;"> <!-- Fireworks MX Dreamweaver MX target. Created Fri Sep 05 19:35:25 GMT-1500 2003--> <script language="JavaScript"> <!-- function mmLoadMenus() { if (window.mm_menu_0905191323_0) return; window.mm_menu_0905191323_0 = new Menu("root",37,28,"Courier New, Courier, mono",12,"#ffffff","#000066","#000000","#ffffff","center","middle",8,0,1000,-5,19,true,true,false,0,true,true); mm_menu_0905191323_0.addMenuItem("他"); mm_menu_0905191323_0.bgImageUp="mmmenu1_37x28_up.gif"; mm_menu_0905191323_0.bgImageOver="mmmenu1_37x28_over.gif"; mm_menu_0905191323_0.hideOnMouseOut=true; mm_menu_0905191323_0.bgColor='#333333'; mm_menu_0905191323_0.writeMenus(); } // mmLoadMenus() //--> </script> <script language="JavaScript1.2" src="mm_menu.js"></script> </head> <body bgcolor="#ffffff"> <script language="JavaScript1.2">mmLoadMenus();</script> <a href="#" onMouseOut="MM_startTimeout();" onMouseOver="MM_showMenu(window.mm_menu_0905191323_0,0,0,null,'BLUE');"><img name="BLUE" src="BLUE.gif" width="7" height="7" border="0" alt=""></a></body> </html> といった感じで全部で5つあります(red,blue,white,green,orange) かなり長くなりましたが、お願いします。
情報が少ないのでなんともいいにくいです。 ポップアップメニューがどのような感じのもので、どういったソースで記述され、どういったスクリプトで制御されているのかがはっきりしないことには原因の推定も難しくなります。 サーバに送った後に開いてもポップアップが表示されない際に、何かエラーメッセージは出ていませんか? ステータスバーに黄色の三角と!マークのアイコンが出てエラーを指摘しているのであれば、そのエラーメッセージも併せて補足していただければ、状況が少しつかめるので、解決にも至りやすいのではないかと思います。 とりあえず、今推測できる範囲では… 外部jsファイルにスクリプトがまとめられているのであれば、それも一緒にアップロードされているかどうかも確認してみると良いでしょう。 あと、IEの設定でインターネット上のJavaScriptを無効にしているなんてことはないですよね? もっと具体的な解決策を出すには、もっと情報が必要だと思います。
補足
ありがとうございます。エラーはでないのですが...。ソースはこんな感じですが<td align="center" valign="middle" bgcolor="#990000"><a href="javascript:;" onMouseOver="MM_showMenu(window.mm_menu_0905153325_0,4,4,null,'image1')" onMouseOut="MM_startTimeout();"><img src="RED.PNG" name="image1" width="7" height="7" border="0" id="image1"></a></td> というかlead1976さんの回答を読んで気付いたのですがスクリプト関係のファイルをアップロードしていなかったかもしれません.....確認してみますが、なんだか抜けてて失礼しました。
お礼
ありがとうございます。これでもうまくいかなかったので、もう一度ソースを見直してみたところ、重複している部分がありました....。何度もやり直していたのでいつのまにか重複してしまったようです。重複部分を修正し、imgファイルを5つにわけてみたら出来ました!長々サポートして頂きありがとうございました、そして迷惑かけました...m(_ _"m)ペコリ こちらの見落としで大変申し訳ないです...。