1

つまり、基本的にこのページを取得しましたが、W3C Validator で実行すると、検証されません。誰かが理由を知っていますか?

http://jsfiddle.net/BcrW9/1/

ありがとうございました!

4

2 に答える 2

3

それはあなたのjquery includeでした。おそらく何らかのエンコードの問題です。別のサイトからコード (スクリプト ブロックなど) をコピーするときに発生することがあります。Windowsがクリップボードのテキストを標準のエンコーディングに変換している間、OSXは元のエンコーディングを保持していると思います。とにかく、これはうまくいきます。2 番目のスクリプト タグをコピーして貼り付け、src 値を変更し、別の場所からコピーしたものを削除しました。http://jsfiddle.net/BcrW9/2/

PS -- コメントで OSX の使用を確認または拒否してください。これは、OSXで常に発生します。Windowsでこの問題が発生したことはありません。

于 2012-08-17T05:04:59.860 に答える
2

本当に MicronXD の答えを拡張するだけです。テキストの直後で<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">改行の前の文字はU+200C ZERO WIDTH NON-JOINERです。(これを見るには16進エディタが必要でした)。

HTML5 パーサーにとって、これは通常のテキスト文字であるため、head要素が終了し、body要素が開始したと想定し (終了 head タグと開始 body タグはどちらもオプションであることを思い出してください)、これらのタグを推測し、body 要素を作成し、それに迷子のキャラクターを追加します。

次に、バリデーター パーサーは、ヘッドの終了タグとボディの開始タグを確認し、パーサーが既に "ボディ内" 状態にあるため、それらをエラーとして報告します。

はぐれた文字を取り除くには>、最初のスクリプト行の末尾と<2 番目のスクリプト行の先頭を含む 2 つのスクリプト行の間の文字を選択して削除し、必要な文字を再入力します。

于 2012-08-17T07:06:26.153 に答える