• ベストアンサー

javascritpの中身をHTML-lintでエラーが出ないようにしたい

英語のサイトで海外の方が作ったものを Another HTML-lint gateway http://openlab.jp/k16/htmllint/htmllinte.html でチェックしてエラーをできるだけなくしたいのですが、 私がJavascriptがさっぱりわからず、つまづいてしまいました。 ---------------------- <script language="JavaScript1.2">mmLoadMenus();</script> <a href="about.asp" onMouseOver="MM_showMenu(window.mm_menu_0119092132_0,0,23,null,'image2');MM_swapImage('image2','','images/menu_about2_selected.gif',1)" onMouseOut="MM_startTimeout();MM_swapImgRestore()"><img src="images/menu_about2.gif" name="image2" border="0" id="image2"></a><a href="basel.asp" onMouseOver="MM_swapImage('image1','','images/menu_basel2_selected.gif',1)" onMouseOut="MM_swapImgRestore()"><img src="images/menu_basel2.gif" name="image1" border="0" id="image1"></a><a href="activitiesassist.asp" onMouseOver="MM_showMenu(window.mm_menu_0119090425_0,0,23,null,'image3');MM_swapImage('image3','','images/menu_assist2_selected.gif',1)" onMouseOut="MM_startTimeout();MM_swapImgRestore()"><img src="images/menu_assist2.gif" name="image3" border="0" id="image3"></a><a href="activitiesreport.asp" onMouseOver="MM_showMenu(window.mm_menu_0119090642_0,0,23,null,'image4');MM_swapImage('image4','','images/menu_report2_selected.gif',1)" onMouseOut="MM_startTimeout();MM_swapImgRestore()"><img src="images/menu_report2.gif" name="image4" border="0" id="image4"></a><a href="specificinfo_main.asp" onMouseOver="MM_showMenu(window.mm_menu_0119090857_0,0,23,null,'image5');MM_swapImage('image5','','images/menu_specific2_selected.gif',1)" onMouseOut="MM_startTimeout();;MM_swapImgRestore()"><img src="images/menu_specific2.gif" name="image5" border="0" id="image5"></a><a href="links.asp" onMouseOver="MM_swapImage('Image2','','images/menu_links2_selected.gif',1)" onMouseOut="MM_swapImgRestore()"><img src="images/menu_links2.gif" name="Image2" border="0" id="Img1"></a> ---------------------- ・body内にscriptが書かれています。 ・alt属性の入れ方がわかりませんでした。 ・<script language="JavaScript1.2">は、 <script type="text/JavaScript1.2">で良いのでしょうか。 ・同じnameがあり(idも合っていない)変更しても問題ないでしょうか? 初心者な質問かと思いますが、 回答いただければ幸いです。 よろしくお願いします。

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

  • ベストアンサー
  • pick52
  • ベストアンサー率35% (166/466)
回答No.4

> idは小文字を含むことができないようなので、 > 大文字にして、nameも合わせて大文字に変更したら > scriptがきかなくなってしまいました。 小文字使えますよ。 逆に属性の値などはあまり大文字使わない方がいいと思います。 JavaScriptは文法は大文字と小文字を完璧に区別するのでid名などを 小文字で記述していたものを修正せずにHTMK側だけ修正したら動作 しなくなるのは当然です。 > また、「 <SCRIPT>~</SCRIPT> 内の要素はすべてコメントで囲んだ > 方が安全です。」とエラーが出ます。 > この場合はどこからどこまでをコメントアウトしたほうが良いの > か、、、、 それはJavaScriptの書き方を調べればすぐにでてきますし、lint側でも 書かれていませんか。 基本的にはJavaScriptに非対応な環境でスクリプトをHTML内に書いた 場合にスクリプトがそのまま表示されることを防ぐためにコメント アウトしておくのが習慣となっています。 <script> <!-- // ↓~ JavaScript コード ~ // --> </script> 最後の // は一部の環境でそのままHTMLのコメントを閉じるとエラーに なる場合があるようなのでそれを回避するためにJavaScriptの1行 コメントを入れることになっています。 ただ、実際にはHTML上にJavaScriptを直接記述するのは非推奨なので できるならちゃんと外部ファイルとして用意して読む込むように した方がいいです。

mokamokas
質問者

お礼

ご回答ありがとうございます。 Javascriptのコメントのところは、 <script type="text/JavaScript"><!-- mmLoadMenus(); // --></script> のように一行で入れてしまっていたので、うまくいきませんでした。 一文でもきちんと改行しなければならなかったようで、勉強になりました。 いくつかのJSファイルは外部化されているのですが、このスクリプトは各ページに書かれているようで何か意図があったのか、単純に外部化しなかったのかはわかりません。 (これだけでなく、head部分にもとっても長いJavascriptがありますが。。)

その他の回答 (4)

  • pick52
  • ベストアンサー率35% (166/466)
回答No.5

>>ANo.4 > 小文字で記述していたものを修正せずにHTMK側だけ修正したら動作 > しなくなるのは当然です。 ↓ 小文字で記述していたものを修正せずにHTML側だけ修正したら動作 しなくなるのは当然です。 分かると思うけど、よく見たら間違えていたので。 最近、変な誤字ばかりする。(^_^;

mokamokas
質問者

お礼

ご丁寧にありがとうございますm(_ _)m

回答No.3

Dreamweaverは古いブラウザを考慮したスクリプトを生成しますので、(name属性を使うのもその1つです) JavaScriptがわからなければ、Dreamweaverで作ったHTMLはさわらない方がいいと思います。 Another HTML-lintを使うなら宗教的なチェックなどをしないか、(全てのチェックを行うと、古いブラウザで適切に表示できなくなることがあります) W3CのHTMLチェッカーでエラーが出ないことを確認できたらOKとするといいと思います。 また、書き方もわからずに適当に変更すると、DWで作り直せなくなります。 > ・<script language="JavaScript1.2">は、 > <script type="text/JavaScript1.2">で良いのでしょうか。 text/javascript となります。 > ・同じnameがあり(idも合っていない)変更しても問題ないでしょうか? HTMLの文法上は問題ないと思いますが、たぶんJavaScriptが動かなくなります。 > idとnameが同じ値でなければならないというのは理解いたしました。 特定の条件付きで同じにならなければなりませんが、基本的には違っていてもかまいません。

参考URL:
http://validator.w3.org/
mokamokas
質問者

お礼

ご回答ありがとうございます。 ご意見を参考にし、各場所修正してみたところ、 一応稼働しているようで、lintでもなんとかOKが出ました。 lintは確認作業者がデフォルトで確認していたようなので、 私もデフォルトで作業していました。宗教的なチェック等は意識してませんでした。。さすがに必要なさそうだったので無効にしました。

  • pick52
  • ベストアンサー率35% (166/466)
回答No.2

> 修正の助言を読みましたが、Javascriptの理解が足りないためか、 > 例えばaltですと入れる部分が間違っている等の別のエラーが出て > しまいます。 入れる部分とは? alt属性はimgエレメントの属性ですよね。 nameとidですが、nameは同名を複数付けられる(重複できる)・idは 単一でないといけないという違いがあります。 また、nameとidで重複させないといけない場合とできない場合が あったり、いろいろややこしいです。 基本的にフォーム以外のエレメントはidにした方がいいようです。 フォームはnameでないとCGIなどに値を渡せません。 (フォームに重複したname与えるとlintでエラーになってしまうけど)

mokamokas
質問者

お礼

ご回答ありがとうございます。 altは</a>で改行して見やすくしてみたら気がつきました。 勘違いしていたようです。ありがとうございます。 idは小文字を含むことができないようなので、 大文字にして、nameも合わせて大文字に変更したら scriptがきかなくなってしまいました。 idを書かなければlintでエラーが出ないようです。 この場合idは書かなくても良いものなのでしょうか。。 また、「 <SCRIPT>~</SCRIPT> 内の要素はすべてコメントで囲んだ方が安全です。」とエラーが出ます。 この場合はどこからどこまでをコメントアウトしたほうが良いのか、、、、

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

基本的にチェッカのエラーには修正の助言がなされている筈だからその通りにすれば出なくなるよ。 http://www.google.com/search?hl=ja&q=script+type+%E3%82%BF%E3%82%B0&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja 他のは唸るほどあるHTMLの本やサイトで書かれているので敢えて省略するけど調べても判りにくいnameとidだけ。 nameとidは基本的に同じ物でidを使うべきってなってて、idとnameは同じ値であるのが望ましい。 しかも罠的にidでは効かないのでnameじゃないとならない、ってのがあるから両方書かないとならないなんてのもあるので面倒。

mokamokas
質問者

お礼

早速のご回答ありがとうございます。 修正の助言を読みましたが、Javascriptの理解が足りないためか、 例えばaltですと入れる部分が間違っている等の別のエラーが出てしまいます。 ちなみに、HTMLバージョンは <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> です。 idとnameが同じ値でなければならないというのは理解いたしました。 他のnameとかぶっているものは新たにnameの値を入れたいと思います。

関連するQ&A

  • htmlファイルによって正常にロールオーバーするページとしないページがあるのですが、どこが間違っているのでしょう?

    お世話になります。 すべてのページに共通のボタンを設置してロールオーバーさせたいのですが、なぜかhtmlファイルによってきちんとロールオーバーするページとしないページがあります。初心者なので知らない内にソースをいじってしまったのかもしれませんが、このソースのどこが間違っているか教えていただけないでしょうか?初心者なものでホントに分からないです。ホントに困っています、どうかよろしくお願いします。ちなみにDreamweaverMXを使用しています。 ■正常に働くhtml <body onLoad="MM_preloadImages('images/home02.jpg','images/news02.jpg','images/company02.jpg')"> 中略 <a href="index.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','images/home02.jpg',1)"><img src="images/home01.jpg" alt="home" name="Image1" width="134" height="53" border="0"></a> <a href="news.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image2','','images/news02.jpg',1)"><img src="images/news01.jpg" alt="新着情報" name="Image2" width="134" height="53" border="0"></a> <a href="company.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image3','','images/company02.jpg',1)"><img src="images/company01.jpg" alt="会社概要" name="Image3" width="133" height="53" border="0"></a> ■正常に働かないhtml <body onLoad="MM_preloadImages('images/home02.jpg','images/news02.jpg','images/company02.jpg')"> 中略 <a href="index.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','images/home02.jpg',1)"><img src="images/home01.jpg" alt="home" name="Image1" width="134" height="53" border="0"></a> <a href="news.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image2','','images/news02.jpg',1)"><img src="images/news01.jpg" alt="新着情報" name="Image2" width="134" height="53" border="0"></a> <a href="company.html" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image3','','images/company02.jpg',1)"><img src="images/company01.jpg" alt="会社概要" name="Image3" width="133" height="53" border="0"></a>

    • ベストアンサー
    • HTML
  • うまくリンク先に飛ばないです…

    <a href="ch_01/info.html" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image7','','images/nav_overbtn03.gif',1)"><img src="images/nav_btn03.gif" name="Image7" width="175" height="25" border="0" id="Image7" /></a> こう記述していますが、リンク先に飛ばなくて困っています。 初歩的な質問かと思いますが、どう記述すればいいのでしょうか? HTML Javaとも初心者なので分かりやすく教えてもらえたら嬉しいです。

  • "戻る" と "ロールオーバー"

    前のページへ戻るボタンをつくりました。 ロールオーバーはできますが、前のページへ戻れません。 どこが悪いのかわかる方、回答お願いします。 <a href="javascript:history.back()" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('navi11','','images/form/1101.gif',1)"><img src="images/form/11.gif" alt="前のページへ戻ります。" name="navi11" width="190" height="26" border="0"></a>

  • イベントハンドラを完全に外部化にしたい

    イベントハンドラをなんとか、完全に外部ファイルにしたいと考えています。 <ul><li> <a href="a.html" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image1','','../ig/c1.gif',1)"> <img src="../ig1.gif" alt="aaa" name="Image1" id="Image1" /></a></li> <li> <a href="b.html" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image2','','../ig/c2.gif',1)"> <img src="../ig2.gif" alt="bb" name="Image2" id="Image2" /></a></li> ・ ・ ・ </ul> サイトのナビ部分のソースです。この中にあるonmouseout、やonmouseoverを外部ファイルにして、 <ul><li> <a href="a.html"><img ~></li> <a href="b.html"><img ~></li>・ ・ ・ </ul>というすっきりした形にできないものでしょうか… イベント登録する関数を作って、ページのonloadで実行しておく という感じかな…と考えていたりするんですが… どのように記述すればよいか お知恵をお貸しください。 ※MM_swapImgRestoreやMM_swapImageはすでに外部化済です

  • Java ScriptでHTMLのソースを使いまわす方法で、、、

    こんにちわ。 Java ScriptでHTMLソースを使いまわす方法で困っています。 "tes.js"で使いまわしのHTMLを入力してます。 ロールオーバーの処理を記述する前は表示されるのに ロールオーバーの処理をいれると、表示されなくなりこまってます。 HTMLのファイルでは、呼び出す際 <script type="text/javascript" src="common/tes.js"></script>と記述してあり、 Java Scriptのファイル"tes.js"では、 document.write(" <a href='ndex.html'onMouseOut='MM_swapImgRestore()' onMouseOver='MM_swapImage('home','','common/img/menu_home_on.gif',1)'><img src='common/img/menu_home_off.gif' alt='home' name='home' width='42' height='9' border='0'></a>") と記述してあります。 もしかしたら、この処理↓に原因があるかもしれないとおもうんですが、 onMouseOut='MM_swapImgRestore()' onMouseOver='MM_swapImage('home','','common/img/menu_home_on.gif',1)' 誰かわかる方がいらっしゃれば教えていただけたらと思います。よろしくお願いします。

  • ウィンドウを閉じる

    close.gifというファイル名の画像を押すとそのウィンドウが閉じる様にしたいのですが、現在スワップイメージでclose_s.gifというファイルを設定しています。 ドリームウィーバー4で作成しています。 下がそのスクリプトなのですが、ウィンドウを閉じさせるにはどこに何を記述したら良いのでしょう? <a href="javascriptvoid(0)" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','img/close_s.gif',1)"><img src="img/close.gif" width="110" height="32" border="0" name="Image1"></a>

  • imgタグ内 name とidの違い

    こんにちは、DreamWeaver8を使ってホームページの勉強を始めたものです。 スワップイメージを作成していて、imgタグ内でname属性とid属性とがでました。スワップイメージの振る舞いには何の違いもないのですが、そもそも属性がnameとidとではどのように違うのかなと思いました。 何かお分かりの方がいましたら教えてください。 よろしくお願いします。 例)上側はname,下側はid <img src="button1.gif" name="Image1" width="150" height="29" id="Image1" onmouseover="MM_swapImage('Image1','','button1-2.gif',1)" onmouseout="MM_swapImgRestore()" /> <img src="button2.gif" width="150" height="29" id="Image2" onmouseover="MM_swapImage('Image2','','button2-2.gif',1)" onmouseout="MM_swapImgRestore()" />

  • 作動しないCSSのプルダウン(1)

    windowsバージョン7で確認すると、CSSのプルダウンが起動しません。 下記URLのナビゲーション部分、「BOARDS」という部分と「STORE」 という部分です。CSSに詳しいお方、ご教授いただけないでしょうか? http://staceysurfboardsjapan.com/sstt.html 【HTML部分】 <ul id="pulldown-menu"> <li><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image9','','images/boards.gif',1)"><img src="images/boards2.gif" name="Image9" width="149" height="26" border="0" id="Image9" /></a> <ul> <li><a href="/stacey/boards/twist.html"><img src="images/m_twist.gif" width="149" height="30" /></a></li> <li><a href="/stacey/boards/guild.html"><img src="images/m_guild.gif" width="149" height="30" /></a></li> <li><a href="/stacey/boards/s3.html"><img src="images/m_s3.gif" width="149" height="30" /></a></li> <li><a href="/stacey/boards/s4.html"><img src="images/m_s4.gif" width="149" height="30" /></a></li> <li><a href="/stacey/boards/s6.html"><img src="images/m_s6.gif" width="149" height="30" /></a></li> <li><a href="/stacey/boards/cd2.html"><img src="images/m_cd2.gif" width="149" height="30" /></a></li> <li><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image31','','images/m_jmodel.gif',1)"><img src="images/m_gn.gif" name="Image31" width="149" height="30" border="0" id="Image31" /></a></li> </ul> </li> </ul> 載せきれないので次の投稿でCSSも記載します。

  • Dream Weaver MX 2004 でロールオーバーを使用した時

    この項目は何を意味しているのか教えて頂ければと思います。 <a href="ccc" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('AAA','','bbb',1)"><img name="AAA" border="0" src="aaa"></a> 上記コマンドで('AAA','','bbb',1)の『''』と『1』が何を意味しているのか分かりません。 『MM_swapImgRestore』『MM_swapImage』というコマンドじゃなきゃいけないのか?も疑問点です。 どなたか教えて頂ければと思います!!よろしくお願いします。

  • 簡単なJavaScriptなんですが

    セル内にボタン(menu01.gif)があって、マウスオーバーしたら別の画像(menu02.gif)に変わり、クリックたら別のファイルに飛ぶ、というJavaScriptを教えてください。 Dreamweaver3で作ったら、OnClickの設定ができずマウスオーバーしただけでURLに飛んでしまうのですがどう直していいのか分からないのでよろしくお願いします。 <td> <a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image10','','img/menu02.gif',1);MM_goToURL('parent','index.html');return document.MM_returnValue"> <img src="img/menu01.gif" width="167" height="20" border="0" name="Image10"> </a> </td>

専門家に質問してみよう