2010-06-01 28 views
0

我剛剛通過w3c HTML驗證程序運行了我正在使用的網站的主頁,並返回了3個錯誤和2個警告。我已經看過他們,但不明白他們爲什麼會造成問題。我在下面粘貼了他們(我已經刪除了網址/字符串等,因爲該網站還沒有準備好公開)。順便說一句,這是針對XHTML Transitional進行驗證的。爲什麼這個UL和內聯JS在HTML驗證期間給出錯誤?

的UL回來,出現以下錯誤:end tag for "ul" which is not finished <ul id='tabs'></ul>

<ul id='tabs'> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat1" class="tab1" title="tab_title"> 
     <img alt="img_alt" src="img_src" /> 
     <span> 
      tab1_text 
     </span> 
    </a> 
</li> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat2" class="tab2" title="tab_title"> 
     <img alt="img_alt" src="img_src" /> 
     <span> 
      tab2_text 
     </span> 
    </a> 
</li> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat3" class="tab3" title="tab_title"> 
     <img alt="img_alt" src="img_src" /> 
     <span> 
      tab3_text 
     </span> 
    </a> 
</li> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat4" class="tab4" title="tab_title"> 
     <img alt="img_alt" src="img_src" /> 
     <span> 
      tab4_text 
     </span> 
    </a> 
</li> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat5" class="tab5" title="tab_title"> 
     <img alt="img_alt" src="img_src" /> 
     <span> 
      tab5_text 
     </span> 
    </a> 
</li> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat6" class="tab6" title="tab_title"> 
     <img alt="img_alt" src="img_src" /> 
     <span> 
      tab6_text 
     </span> 
    </a> 
</li> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat7" class="tab7" title="tab_title"> 
     <img alt="img_alt" src="img_src" /> 
     <span> 
      tab7_text 
     </span> 
    </a> 
</li> 
<li> 
    <a href="/en/folder/folder/search?categories[]=cat8" class="tab8" title="tab_title"> 
     <img alt="img_alt" src="img_src" /> 
     <span> 
      tab8_text 
     </span> 
    </a> 
</li> 
</ul> 

對於內嵌的JavaScript,我得到2個錯誤和2個警告所有同樣的事情 - 我有一個簡單的if語句& &和驗證似乎看到這是HTML而不是JavaScript:character "&amp;" is the first character of a delimiter but occurred as dataxmlParseEntityRef: no name

<script type='text/javascript'> 
    if (weather_data != null && weather_data['data'] != null){ 
    display_weather(); 
} 
</script> 

的JavaScript只是身體靠近TA之前放置g在文檔的末尾。 如果您需要查看完整的源代碼,請告訴我,我可以發送它。

回答

1

XML不支持的內在CDATA所以ampersands have special meaning在XHTML中,他們沒有在HTML中有,但你可能服務你的XHTML爲text/html故見兼容性指南Embedded Style Sheets and Scripts

至於:

end tag for "ul" which is not finished

給出

<ul id='tabs'></ul> 

列表必須包含至少一個列表項。我猜你正在用JavaScript填充它(因此你的第二個例子是ul),但驗證器並不關心這個。

+0

大衛,我已經給了上面的UL是確切的一個,驗證者抱怨 - 我只是複製並從Chrome中查看源代碼粘貼它,但刪除了字符串。我承認標籤UL對於某些頁面是空的,所以我需要解決這個問題,但對於有問題的頁面,它在發送之前由服務器填充。 – thor 2010-06-01 14:57:24

+0

啊,忘記了 - 我忘了我們已經設置好了,所以整個頁面只能從一個特定的IP地址查看!所以當驗證者去檢查它時,它只會看到標籤UL爲空的頁面的一部分。衛生署! – thor 2010-06-01 15:08:19

+0

你可以試試這樣:'

' - 驗證器可以工作,沒有人會看到佔位符。 – BryanH 2012-08-08 17:47:51

0

爲了驗證內嵌的JavaScript,你需要用在CDATA標籤的內容,並添加JS的意見,使之驗證:

<script type='text/javascript'> 
//<![CDATA[ 
if (weather_data != null && weather_data['data'] != null){ 
    display_weather(); 
} 
//]]> 
</script> 

我檢查你的W3C驗證張貼的HTML列表片段和它驗證成功爲HTML 4.01嚴格XHTML 1.0嚴格。所以問題在別的地方。你能發佈一個鏈接到你的整個頁面嗎?

相關問題