2015-01-16 51 views
0

我試圖發送電子郵件,但電子郵件提供程序不讓我發送它,如果身體格式不正確的HTML提供程序。任何人都可以幫助我驗證這一點嗎?html5錯誤:元素頭缺少子元素標題的必需實例

的錯誤是Element head is missing a required instance of child element title.

<!DOCTYPE html> 
<html> 
<div style="background-color: rgb(238,238,238);padding: 0;margin: 0;font-family: Open Sans , Helvetica Neue , Helvetica , Arial , sans-serif;font-size: 13.0px;background-color: rgb(238,238,238);"> 
</div> 
</html> 

VALIDATOR:http://validator.w3.org/check

回答

2

您應該添加身體標記和頭部標籤。它應該包含一個標題,它不是空的,也是一個字符集設置。

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Title</title> 
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
    </head> 
    <body> 
    <div style="background-color: rgb(238,238,238);padding: 0;margin: 0;font-family: Open Sans , Helvetica Neue , Helvetica , Arial , sans-serif;font-size: 13.0px;background-color: rgb(238,238,238);"> 
    </div> 
    </body> 
</html> 

如在驗證器告訴:

爲元件頭內容模型: 如果文檔是iframe srcdoc文檔或如果標題信息可從較高級別的協議:零或更多的元數據內容元素,其中不超過一個是標題元素,不超過一個是基本元素。 否則:元數據內容的一個或多個元素,其中一個是標題元素,不超過一個是基本元素。

+0

雖然行號不同,但我得到相同的錯誤。請查看http://validator.w3.org/check –

+0

請查看我的答案更新。 – roNn23

2

您的文檔是有效的HTML5。驗證程序錯誤地發出錯誤消息。它的診斷是自相矛盾的,因爲它報告缺少一個title元素作爲錯誤,但是引用了HTML 5.1草案的意思,除其他外,當「標題信息可以從更高級別的用戶獲得」時,水平協議「。規則在HTML5規範中闡明如下,在head element的說明末尾:

注意。在大多數情況下,標題元素是必需的孩子,但是當較高級別的協議提供標題信息時,例如,在 電子郵件的主題行中,當HTML用作創作 格式的電子郵件時,標題元素可以省略。

目前沒有辦法告訴驗證者被檢查的文檔將被用作電子郵件的正文(並且驗證者沒有辦法實際檢查它!)。我已經提交了一個bug report,建議將此作爲警告,而不是錯誤,但我不認爲這會很快實施。

因此,您可以告訴您的電子郵件提供商此錯誤消息不正確,並引用W3C HTML5關於此的建議。但是,如果他們確實需要一個乾淨的驗證器報告而不是有效性,那麼除了添加title元素之外,您幾乎沒有其他選擇。就驗證者而言,任何非空內容將會做,例如

<!DOCTYPE html> 
<html> 
<title>Message</title> 
<div style="background-color: rgb(238,238,238);padding: 0;margin: 0;font-family: Open Sans , Helvetica Neue , Helvetica , Arial , sans-serif;font-size: 13.0px;background-color: rgb(238,238,238);"> 
</div> 
</html> 

(順便說一句,不要求<html></html>標籤。)

你也可以考慮修改您的電子郵件消息生成軟件,以便在嵌入式電子郵件的副本標題(放置在Subject:標題中)插入title元素。在這種情況下,請記住在&amp;的任何<的內容中排除內容中的任何。