3

Web サイトの左側にナビゲーション バーがある友人 (彼は法律事務所で働いています) のために、いくつかのサイトの変更に取り組んでいます。ホバーすると、サブメニューが表示されます。残念ながら、彼はサブメニュー項目の 1 つを取り出そうとしましたが、サブメニュー ナビゲーションのすべての機能を失いました。サブメニューを表示する代わりに、エラーだけを表示するようになりました。

前のコードは次のとおりです (動作する場所):

<script language="JavaScript">
<!--
function mmLoadMenus() {
    if (window.mm_menu_0327091831_0) return;

    window.mm_menu_0327091831_0 = new Menu("root",225,30,"Optima, Verdana, Helvetica Neue, sans-serif",14,"#FFFFFF","#FFFFFF","#7E7D7D","#B3B3B3","left","middle",8,0,250,-5,7,true,false,true,0,true,true);

    mm_menu_0327091831_0.addMenuItem("HARRY&nbsp;GRIFF,&nbsp;P.C.","location='harry-griff.html'");
    mm_menu_0327091831_0.addMenuItem("DOUGLAS&nbsp;E.&nbsp;LARSON,&nbsp;P.C.","location='doug-larson.html'");
    mm_menu_0327091831_0.addMenuItem("STEPHEN&nbsp;L.&nbsp;LAICHE,&nbsp;P.C.","location='stephen-laiche.html'");
    mm_menu_0327091831_0.addMenuItem("BRAD&nbsp;R.&nbsp;WRIGHT,&nbsp;P.L.L.C.","location='brad-wright.html'");
    mm_menu_0327091831_0.hideOnMouseOut=true;
    mm_menu_0327091831_0.bgColor='#555555';
    mm_menu_0327091831_0.menuBorder=1;
    mm_menu_0327091831_0.menuLiteBgColor='#FFFFFF';
    mm_menu_0327091831_0.menuBorderBgColor='#777777';

    mm_menu_0327091831_0.writeMenus();
} // mmLoadMenus()
//-->​​​​​
</script>

後のコードは次のとおりです。

<script language="JavaScript">
<!--
function mmLoadMenus() {
    if (window.mm_menu_0327091831_0) return;

    window.mm_menu_0327091831_0 = new Menu("root",225,30,"Optima, Verdana, Helvetica Neue, sans-serif",14,"#FFFFFF","#FFFFFF","#7E7D7D","#B3B3B3","left","middle",8,0,250,-5,7,true,false,true,0,true,true);

    mm_menu_0327091831_0.addMenuItem("HARRY&nbsp;GRIFF,&nbsp;P.C.","location='harry-griff.html'");
    mm_menu_0327091831_0.addMenuItem("DOUGLAS&nbsp;E.&nbsp;LARSON,&nbsp;P.C.","location='doug-larson.html'");
    mm_menu_0327091831_0.addMenuItem("STEPHEN&nbsp;L.&nbsp;LAICHE,&nbsp;P.C.","location='stephen-laiche.html'");
    mm_menu_0327091831_0.addMenuItem("BRAD&nbsp;R.&nbsp;WRIGHT,&nbsp;P.L.L.C.","location='brad-wright.html'");
    mm_menu_0327091831_0.addMenuItem("BRAD&nbsp;R.&nbsp;WRIGHT,&nbsp;P.L.L.C.","location='rob-zentner.html'");
    mm_menu_0327091831_0.hideOnMouseOut=true;
    mm_menu_0327091831_0.bgColor='#555555';
    mm_menu_0327091831_0.menuBorder=1;
    mm_menu_0327091831_0.menuLiteBgColor='#FFFFFF';
    mm_menu_0327091831_0.menuBorderBgColor='#777777';

    mm_menu_0327091831_0.writeMenus();
} // mmLoadMenus()​​​​
//-->
</script>

動作しているサイトは次のとおりです。

最初のサイト (これは機能していますが、いくつかの更新が必要なページです)

動作していないサイトは次のとおりです。

2 番目のサイト (これは機能していません。弁護士のプロフィール ボタンにカーソルを合わせます)

そこに問題があると思うので、変更されたJavaScriptを貼り付けただけですが、必要に応じてさらに投稿できます。

助けてくれてありがとう!

4

1 に答える 1

12

の 2 つの異なるバージョンがありmm_menu.jsます。そのうちの 1 つに構文エラーがあります。以下の 2 つのスニペットで強調表示されている StackOverflow の構文に注意してください。

http://www.gllblaw.com/mm_menu.js (良いバージョン)

/**
 * mm_menu 20MAR2002 Version 6.0
 * Andy Finnell, March 2002
 * Copyright (c) 2000-2002 Macromedia, Inc.
 *
 * based on menu.js
 * by gary smith, July 1997
 * Copyright (c) 1997-1999 Netscape Communications Corp.
 *
 * Netscape grants you a royalty free license to use or modify this
 * software provided that this copyright notice appears on all copies.
 * This software is provided "AS IS," without a warranty of any kind.
 */
function Menu(label, mw, mh, fnt, fs, fclr, fhclr, bg, bgh, halgn, valgn, pad, space, to, sx, sy, srel, opq, vert, idt, aw, ah) 
{
   // code here...

http://users.acsol.net/~jhart/mm_menu.js (悪いバージョン)

/**
 * mm_menu 20MAR2002 Version 6.0
 * Andy Finnell, March 2002
 * Copyright (c) 2000-2002 Macromedia, Inc.
 *
/
function Menu(label, mw, mh, fnt, fs, fclr, fhclr, bg, bgh, halgn, valgn, pad, space, to, sx, sy, srel, opq, vert, idt, aw, ah) 
{
   // code here...

まだ問題が見えますか?悪いバージョンの上部のヘッダーで、コメントが適切に閉じられません。複数行の Javascript コメントは で始まり、/*で終わり*/ます。ただし、このヘッダー コメントは破棄されており、コメント終了トークンがありません。したがって、ファイル全体がコメントアウトされ、Menu存在しません。

そのコメントを適切に閉じれば、問題なく動作するはずです。


そして、あなたは自分自身がより良い開発者になる方法を知っています。これが私がこれをどのように理解したかです.

Chrome で開発者ツールを開き、JS コンソールを確認するだけです。鮮やかな赤で、私はこれを見ます:

JS コンソール

これにより、構文エラーと、エラーが発生したファイルとおおよその行がすぐにわかりました。ファイルを見て、Chrome の構文がファイル全体をコメント (緑色) のように強調表示しているのを見ると、何が起きているのかがかなり明白になりました。

于 2012-10-01T22:37:24.173 に答える