2009-08-19 12 views
1

可能性の重複:
Why don’t self-closing script tags work?奇妙ジャバスクリプト/ jqueryの行動

私は<ヘッド>要素内のJavaScriptコードのこのビットを持っていました。

<script src="jquery-1.3.2.js" type="text/javascript"></script> 

なぜ違いがある:私は明示的なエンドscript要素を使用するまで働くことを拒否した

<script src="jquery-1.3.2.js" type="text/javascript" /> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#welcome").addClass("centered"); 
     $("#created").addClass("centered"); 
    }); 
</script> 

EDIT:全体ヘッダーだった:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <link rel="stylesheet" href="css/blueprint/screen.css" type="text/css" media="screen, projection" /> 
    <link rel="stylesheet" href="css/blueprint/print.css" type="text/css" media="print" /> 
    <!--[if lt IE 8]><link rel="stylesheet" href="css/blueprint/ie.css" type="text/css" media="screen, projection" /><![endif]--> 
    <link rel="stylesheet" href="css/blueprint/src/typography.css" /> 
    <link rel="stylesheet" href="css/common.css" /> 

    <script src="jquery-1.3.2.js" type="text/javascript" /> 

    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#welcome").addClass("centered"); 
      $("#created").addClass("centered"); 
     }); 
    </script> 
</head> 

script要素は、明示的な終了要素が、リンク要素のdoesntが必要な理由を私は理解していません。

+1

どのブラウザで動作しないのですか? –

+3

dup of @stackoverflow.com/questions/69913/why-dont-self-closing-script-tags-work – Peter

+0

@Chris Missal:私はIE 8でテストしています – Ferruccio

答えて

3

ええ、あなたは常にそのようなスクリプト要素を終了する必要があります。タグを終了するための '/>'というXHTML形式はサポートしていません。

+0

私はこれが事実であることに気付きました、このようにすべてのjs関連のタグを閉じますが、何か特別な理由がありますか?私はおそらく重複した質問であることを認識していますが、これが単なるコメントである理由です。 –

+0

私は正確にはわかりませんが、私の推測は互換性のためです。 Quirksmodeはいくつかの情報を持っています:http://www.quirksmode.org/bugreports/archives/2006/06/MSIE_script_tag_failure_in_valid_xhtml.html –

+0

技術的には、 '/>'形式はXHTMLでは有効ですが、HTMLでも決して有効ではありません。あいまいで、めったに実装されていない意味。そして、あなたがXHTMLを書いていると思っても、それは 'text/html'として扱われているので、ブラウザはHTMLとして扱います。 '
'(HTMLバージョンは閉じタグなしの '
')のようなタグは、HTMLパーサが許しているだけであるという事実があります。 – Nate

2

ドキュメントのdoctypeは何ですか?あなたの最初の例のような技術的に最小化されたタグは、XMLだけのものです。ほとんどの場合、HTMLはHTMLを許可しますが、正しいHTMLは2番目の例です。

1

内側にコンテンツがない場合でも、終了タグがない限り、scriptおよびiframeのような特定の要素はすべてのブラウザで正しく機能しません。私はこれが愚かであることに同意しますが、Web開発者が気づく必要のある不一致のほんの1つだけです。

私はかつて、ブラウザがその時点で彼らはまた、このような矛盾を解決することを実際 XHTMLを(ので、我々はアプリケーション/ XHTML + xmlのないテキスト/ htmlとしてXHMTLを送ることができます)を実装するベンダーと想像するでしょう。あるいは、私は楽観主義者に過ぎないかもしれない。

+0

これで幸運にも、HTML5が出てきたらXHTMLは決してその点に到達しないでしょう。 – micmcg

+0

AFAIK彼らはHTML5が完成するまでXHTML2の作業を中断しましたが、私はあなたの悲観主義に共感します:) –