0

検証に失敗するコントラスト スイッチャーがあります。スクリプト タグ内で CDATA セクションが必要になるのはいつですか?を読みました。 文字をエスケープしてCDATAを使用しようとしましたが、両方でまだ検証エラーが発生しています。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<head>
<script type="text/javascript">
    $(document).ready(function(){
    // DRY wrapper function
    function appendStyleSheet() {
      $('head').append('<link rel="stylesheet" href="{site_url}css/high-contrast.css" type="text/css" id="hc_stylesheet"/>'); 
    }
    // append the style sheet on load if the cookie is set to true
    if ($.cookie('high_contrast_momentum') == 'true') {
      appendStyleSheet();      
    }
    $("#contrast-btn a").click(function () {
        if ($.cookie('high_contrast_momentum') != 'true') {

            appendStyleSheet();      
            $.cookie('high_contrast_momentum', 'true', {expires:365}); // set the cookie to true
        }       
        else {
            // remove the high-contrast style
            $("#hc_stylesheet").remove();
            $.cookie('high_contrast_momentum', 'false');
        }
    });
    });
</script>   

私が得ている検証エラーは次のとおりです。ドキュメントタイプは要素「リンク」を許可していません


URL からエンドポイント IP を取得する

http ポストに TCP クライアントを使用する。例外とは異なる結果が得られます。いいえ HTTP 200 OK...

ここに私の要求があります:

GET / HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: de-DE
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
UA-CPU: AMD64
Accept-Encoding: gzip, deflate
Host:www.mywebsite.com
Connection: Keep-Alive
Cache-Control: max-age=0

ここに私の応答があります:

HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Location: http://somewhere.com (url changed)
Content-Length: 0
Date: Fri, 03 Aug 2012 10:38:14 GMT

「場所」にリダイレクトするように指示されます。次のリクエストは、 www.mywebsite.com を参照してhttp://somewhere.comへの GET である必要があります。

もう 1 つのシナリオは、https リンクです。多くの場合、HostEntry が返す IP とはまったく異なる IP です。IPを取得するには?C# で簡単な方法はありますか?

4

1 に答える 1

0

<head> タグ内で <link /> タグを使用できますが、 <script> タグ内で <link /> タグを使用することはできません。

一方、 <script> タグ内の <link /> タグの存在は、単純な誤解です。xHTML ドキュメント (xHTML DTD を使用しているため) には、スクリプト領域のコンテンツが xHTML として解析されないようにするための CDATA セクションが実際に含まれています。

あなたのエラーは、xHTML 予約文字 &/</> の使用が原因です。

検証エンジンは、スクリプト タグのコンテンツが HTML として解析されるべきではないにもかかわらず、スクリプト タグ内のリンクを誤って読み取っている可能性があります。

以下のように、その記号を残りの文字列から分離してみてください。

 $('head').append('<'+'link rel="stylesheet" href="{site_url}css/high-contrast.css" type="text/css" id="hc_stylesheet"/'+'>'); 
于 2012-08-03T11:04:06.843 に答える