• ベストアンサー

type属性とlanguage属性の違い。後者は廃れたのですか??

http://javascript.eweb-design.com/1212_ac.html このサンプルをそのまま組み込み、「CSE HTML Validater」というHTMLの 文法チェッカにかけてみたら、 > HTML 4.01 and XHTML require the "type" attribute for the "script" > element to specify the scripting language. For example, use > type="text/javascript" for JavaScript. Note that many browsers may > work without this attribute but it is highly recommended that it be > used. と警告が出ました。確か、HTML-Lintでも、何か言われたな、と思い出し、 チェックしてみたら、やはり「<SCRIPT> には TYPE 属性が必要です。」と いわれます。 そこで、上記ページのサンプルの<SCRIPT language="JavaScript">の箇所に、 <SCRIPT language="JavaScript" type="JavaScript">と追記してみたり、 <SCRIPT type="JavaScript">に書き換えてみたりしたら、 関数を呼び出す行がいかん、とスクリプトエラーになってしまいます。 属性を書き換えたことがいけなかったのと気づかす、原因判別に時間を費や してしまい、すっかりハマりました。 確か、language属性の方は古い書き方だとかだったと思いますが、スクリ プトが動かなくなるほど致命的な違いがあるんでしょうか? さらにいうと、別のサンプルで<script language="JavaScript1.2">という 記述を書き換えたときも動かなかった経験があります。 何かお心あたりがあればご教示いただけますと幸いです。

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

  • ベストアンサー
  • mibusys
  • ベストアンサー率60% (18/30)
回答No.2

勧告に忠実に記述するか 現実の実装に則した記述にするか の方針の違いといえます。 「HTML Validater」かけるということは 勧告に忠実に記述するということです。 しかし、そうしたところで正しく表示されるか・ 正しく動作するかどうかはまったく別問題です。 現実の実装に則した記述とは勧告は関係なく、 一般的に使用されているブラウザでどう表現されるかを重視するということです。 普通に動かすのなら<script>で十分です。 あまり勧告にこだわらない方がいいのではないかと思います。

litton101
質問者

お礼

mibusysさん、アドバイスありがとうございました。 >正しく動作するかどうかはまったく別問題 >あまり勧告にこだわらない方がいい こだわりすぎていたようですね。 指針程度に気楽に作成するようにします。

その他の回答 (2)

回答No.3

それは規則ではなく勧告というものです。勧告通りのチェック で引っかかるように作ってあるCSE HTML Validaterのようなサ イトに掛ければ引っかかるのは当然ですが、だから動かないと か表示しないということでは全然ありません。気にすることは まったくないのが現状です。世の中にはその属性で書かれた ページが腐るほどありますから、それで具後かなくしたらネット は大パニックになります。むしろ、LANGUAGE属性で書いておいた 方が安全ともいえるほどです。それでも不安なときは両方を 書いておけばいいのです。正誤判定機に掛けて完全にパスする ようなページはまずないといってよいでしょう。

litton101
質問者

お礼

ccloveforuさん、アドバイスありがとうございました。 >世の中にはその属性で書かれたページが腐るほどあり >大パニックになります まったくおっしゃるとおりですね。 あまり正誤判定機にこだわりすぎないように バランスよく作成したいと思います。 大変参考になりました。ありがとうございました。

  • kura07
  • ベストアンサー率50% (30/59)
回答No.1

http://www.tohoho-web.com/js/write.htmに「language属性」について ********** language 属性は HTML4.01 に採用されなかったため、 HTML4.01 に従う場合は language 属性ではなく、type 属性を使用します。 ********** と書いてあるので、致命的ではありませんが、 type="text/javascript"を使うのを習慣にしたほうがいいと思います。

参考URL:
http://www.tohoho-web.com/js/write.htm
litton101
質問者

お礼

kura07さん、ご回答ありがとうございました。 type="text/javascript"と書くべきところを type="javascript" としていた点でも誤っていましたね。 以後、注意したいと思います。

関連するQ&A

  • script language? type?

    javascript の知識が無いのですが、 ------------------------------------------ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja-JP"> <head>  ~~~ <meta http-equiv="content-script-type" content="text/javascript"> </head> <body> <script language="JavaScript"> ~~~ </script> </body> ------------------------------------------ あるプログラムで、 language="JavaScript" のスクリプト言語を <script type="text/JavaScript"> と属性を書き換えても問題ないようですが、 各ブラウザ的に問題ないでしょうか? また、SSL使用下で同scriptを利用する場合、 SSLの表示が中途半端になるようのですが、 相互関係のヒントか対処法を教えて下さい。

  • LANGUAGE属性

    単純な質問ですが。。 LANGUAGE属性の記述は下のように書きますが、 <SCRIPT LANGUAGE="JavaScript"> ここは「JavaScript1.1」や「JavaScript1.2」など いろいろバージョン記述?があるそうですが、 とりあえず「JavaScript」と書いておけば、 基本的に問題なしでしょうか。 数値や文字列の解釈方法の違いに気をつけていれば、 全て「JavaScript」でいいかな、と思っているのですが。

  • <script language="javascr

    FC2アクセス解析を使っているのですが ソースの中に <script language="javascript" と .<div align="right">があり 自分のサイトのソースをチェックすると 「HTML5ではLANGUAGE属性は<SCRIPT>タグ中で未サポートです。 TYPE属性を使用してください」 「LANGUAGE属性はHTML5ではSCRIPTタグ内で未サポート *9* TYPE属性を使用してください」 と 「HTML5ではALIGN属性は<DIV>タグ中で未サポートです。 CSS を使用してください」 「309. 属性を持つ要素はCSSでより良く処理される *9* CSSを使用してください」 となるのですが こういう場合は無理矢理でも FC2アクセス解析を変更したほうがいいのでしょうか? でもそうするときちんと集計されなくなりますか?

    • ベストアンサー
    • HTML
  • type属性について。

    初歩的な質問です。 ホームページを作っていて以前から思っていた素朴な疑問です。 メタタグで下のような記述をした場合、<style>,<script>のtype属性は必要なのでしょうか。 下のメタタグはデフォルトの言語タイプを指定していると解釈しています。 同じタイプを使う場合、さらにtype属性で上書きする必要があるのでしょうか。 教えてください。 <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Style-Type" content="text/css">

    • ベストアンサー
    • HTML
  • JavaScript の書き方、どの方法がいいの?

    秀和システムのHTML&CCS&JavaScript辞典を参考にホームページの作り変えを行なっているのですが、今日あるサイトを見てから、よくわからなくなってしまったことがあります。 http://openlab.ring.gr.jp/k16/htmllint/htmllint.html で、HTML文書の文法チェックを行なってみたのですが、その際、 <SCRIPT> の属性 `LANGUAGE` はあまり薦められない属性です。 等と書かれていました。 そこで使用している本やその他のサイトで調べたところ、 3つの書き方、language 属性とTYPE 属性、Content-Script-Typeがあることがわかったのですが、どの方法が一番、多様性があり、よい書き方なのかアドバイスをお願い致します。 ちなみにHTMLは4.01と記述しています。 また、JavaScriptはこちらのサイトから(http://jun89.xdap.jp/)お借りしたものを使用し、 現在、<SCRIPT language=JavaScript>と記述しています。 よろしくお願い致します。

  • input要素のtype属性を変えたい

    携帯サイトのパスワード入力フォームで、最後に入力した1文字だけ表示し、他をマスクするというものがあり、面白いなと思ってPCサイト用にJavascriptで作ってみようと思いました。HTML部に <input type="password" id="pass" /> と書き、初期設定としてJavascript部に window.onload = function() {   var input = document.getElementById("pass");   input.type = "text";   input.onkeydown = 実装する関数; } と書いています。これはHTMLにイベントハンドラを設定したくない(HTMLとJavascriptを分離させたい)からです。type属性がpasswordだとどうやっても文字は見えないので、textに変えてキーが押されるごとに最後の文字以外をマスクしてvalueに挿入する方法を考えていますが、これがうまくいきません。どうやらtype属性は値を取得することは可能ですが、挿入(置き換え)することはできないようなのです(ここでエラーが起こっているようです)。他に input.removeAttribute("type"); input.appendAttribute("type", "text"); といったやり方も試してみましたが、うまくいきませんでした。 これは仕様で、どうやっても無理なのでしょうか? <input type="password" /> を <input type="text" /> に変えれば対処できる問題ですが、Javascript不使用ユーザーにも対応できるようにしたいので、なんとか<input type="password" />形式のまま解決できませんでしょうか?

  • CGIのプログラム設置でSSIを使わずに、JavaScriptで直接CGIを呼び出す

    SSIが使えないサーバーで、JavaScriptを使って、直接CGIを呼び出して、表示させるCGIの設置をしています。 CGIスクリプト配布先では、表示した箇所に下記タグを記載するようにと説明があります。 ----------------------------------------------- <html> <body> <script language="JavaScript" src="○○.cgi" > </script> </body> </html> ----------------------------------------------- 真っ白いままで表示されなく困っています。 ちなみに直接CGIにアクセスすると、崩れた表示で表示されますので、CGI設置は問題ないはずです。 (CGIのパーミッション755にしてあります) 質問がいくつかあるのですが・・・ ホームページ作成ソフトで作っていますので、<head>~</head>内に下記メタタグが自動挿入されていますが、何か関係があるのでしょうか? <meta http-equiv="content-script-type" content="text/javascript" /> language属性は HTML4.01に採用されなかったため、HTML4.01 に従う場合は language 属性ではなく、type属性を使用するという記載を検索で見つけましたが、type属性に変更すればよいのでしょうか? type属性に変更のタグはどうように記載すればよいでしょうか? JavaScriptはあまり詳しくないので、とんちんかんな質問だったらすみません。 どうぞよろしくお願いします。 ----------------------------------- 配布先CGI:http://www.nmt.ne.jp/~mamiko/scripts/index.html

  • HTMLの文法チェック

    HTMLの文法をチェックしたら以下のエラーが出たのですが、どう直したらいいのか初心者なのでわかわかりません、できましたら具体的に何を足して何を削ればいいのか教えてください。 <HTML xmlns="http://www.w3.org/1999/xhtml xml:lang="jp"> <HTML> に XHTML1.0 または XHTML1.1 用の属性 `XML:LANG` が指定されています。 <HTML> に XHTML1.0、XHTML1.1 または iMode XHTML 用の属性 `XMLNS` が指定されています。 <script language="JavaScript" src="http://analyzer2.fc2.com/analyzer.js?uid=856988/script <SCRIPT> には TYPE 属性が必要です。

  • name属性に[]付の名前を指定した処理

    理由があり、下記の様にname属性に配列(?)を指定しています。(下記はスクリプトエラーになります。) <HTML> <HEAD> <script language="JavaScript"><!-- function input(obj1, obj2) { obj2.value = obj1.value } // --></script> </HEAD> <BODY> <FORM name="myform"> <INPUT type="text" name="text[1]" onchange="input(this, document.myform.text[2])" /> <INPUT type="text" name="text[2]" onchange="input(this, document.myform.text[1])" /> </FORM> </BODY> </HTML> 当然ながら、text[1]をtext1にし、text[2]をtext2にすれば全く問題無く動作します。nameとしてこのままtext[n]のままでこのエラーを回避するにはどうしたらいいのでしょう。以上、よろしくお願いします。

  • 属性の削除について

    属性の削除を行いたいのですが、親オブジェクトの記述が解りません。 詳しい方教えてください。 <script type="text/javascript"> <!-- 親オブジェクト = document.getElementByID("ID名"); 削除するオブジェクト = document.getElementByID("ID名"); 親オブジェクト.removeChild(削除するオブジェクト); // --> </script> HTML <div class="image"> <a href="○○○.gif" title="" rel="△△"><img src="○○○.gif"></a> </div>

専門家に質問してみよう