3

私のサイトでは、ページャー付きのスライドショーに jquery サイクル プラグインを使用しています。この例: http://malsup.com/jquery/cycle/pager.html

したがって、私のドキュメントの頭には、次のようなスクリプトがあります。

<script type="text/javascript">
$('#s4').before('<div id="nav">').cycle({ 
    fx:     'turnDown', 
    speed:  'fast', 
    timeout: 3000, 
    pager:  '#nav' 
});
</script>

私の文書タイプは XHTML Strict です。

ページを検証しようとすると、次のエラーが表示されます:「ドキュメント タイプでは要素 "div" が許可されていません」および「"div" の終了タグが省略されましたが、OMITTAG NO が指定されました」というのは、div タグが閉じられていないためです。 .

jquery を使用して検証する方法はありますか?

4

3 に答える 3

8

HTMLコメントタグをスクリプトブロックに配置すると、バリデーターはそのコードブロックを無視し、正しく検証します。

<script type="text/javascript">
<!--
$('#s4').before('<div id="nav">').cycle({ 
    fx:     'turnDown', 
    speed:  'fast', 
    timeout: 3000, 
    pager:  '#nav' 
});
//-->
</script>
于 2009-05-19T14:23:12.127 に答える
8

実際、コードが検証されない理由は、特定の文字が許可されていないためですXHTML(例: " " など)。したがって、(解析規則の厳密な性質のため) でセクションに<ラップする必要があります。コメント マーカー (具体的には、二重ダッシュ " ") も許可されておらず、ブロック内に表示されるべきではありません。CDATAXHTMLXMLHTML--SCRIPT有効わかりやすい JavaScript。HTMLしたがって、コメント マーカーを使用する代わりに、「CDATA マーク付きセクション」内にコードをラップして、バリデーターを渡し、JavaScript エンジンを混乱させないようにする必要があります。

<script type="text/javascript">
//<![CDATA[
$('#s4').before('<div id="nav">').cycle({ 
    fx:     'turnDown', 
    speed:  'fast', 
    timeout: 3000, 
    pager:  '#nav' 
});
//]]>
</script>

詳細については、次のページを参照してください。

  1. XHTML 1.0 推奨: 4.8。スクリプトとスタイル要素
  2. XHTML ドキュメントでの CSS と JavaScript の適切な使用
于 2009-05-19T20:30:25.020 に答える
1

次のようにすると、おそらくエラーを取り除くことができます。

$('#s4').before('<' + 'div id="nav">').cycle({ ...

これにより、バリデーターが script タグ内の HTML を検出しなくなります。私 - エラーが私のコードではなくバリデーターの問題であることを知っていれば、私はエラーを受け入れます。

于 2009-05-19T14:13:01.320 に答える