Javascript 错误验证W3C HTML5 img noscript facebook.com

Javascript 错误验证W3C HTML5 img noscript facebook.com,javascript,html,w3c-validation,noscript,Javascript,Html,W3c Validation,Noscript,我正在尝试将我的页面验证为HTML5(W3c)。我有以下错误:这里不允许使用“img”元素(作为“noscript”元素的子元素)。当“head”的子元素为“noscript”时,“noscript”元素必须仅包含以下子元素:“link”、“style”和“meta” 我的代码的现场推荐: 将升级后的代码段复制并粘贴到您要跟踪转换的网站HTML代码中的;和;之间。例如,要跟踪注册,请将代码放在“注册完成”网页上 请参阅源代码: <head> <script type="text

我正在尝试将我的页面验证为HTML5(W3c)。我有以下错误:这里不允许使用“img”元素(作为“noscript”元素的子元素)。当“head”的子元素为“noscript”时,“noscript”元素必须仅包含以下子元素:“link”、“style”和“meta”

我的代码的现场推荐: 将升级后的代码段复制并粘贴到您要跟踪转换的网站HTML代码中的
;和
;之间。例如,要跟踪注册,请将代码放在“注册完成”网页上

请参阅源代码:

<head>
<script type="text/javascript">
var fb_param = {};
fb_param.pixel_id = '1234567890';
fb_param.value = '10.00';
fb_param.currency = 'USD';
(function(){
  var fpw = document.createElement('script');
  fpw.async = true;
  fpw.src = '//connect.facebook.net/en_US/fp.js';
  var ref = document.getElementsByTagName('script')[0];
  ref.parentNode.insertBefore(fpw, ref);
})();
</script>
<noscript><img height="1" width="1" alt="" style="display:none" src="https://www.facebook.com/offsite_event.php?id=1234567890&value=10.00&currency=USD" /></noscript>
</head>

var fb_param={};
fb_param.pixel_id='1234567890';
fb_参数值='10.00';
fb_参数货币=‘美元’;
(功能(){
var fpw=document.createElement('script');
fpw.async=true;
fpw.src='//connect.facebook.net/en_US/fp.js';
var ref=document.getElementsByTagName('script')[0];
ref.parentNode.insertBefore(fpw,ref);
})();

是否可以修改此代码并通过验证(在head部分)?

W3C的HTML5规范在
head
元素中定义了一个的内容模型,如下所示:

[…]按任何顺序,零个或多个
链接
元素,零个或多个
样式
元素,零个或多个
元素

如您所见,它只能包含
链接
/
样式
/
元素。因此,不可能修改任何内容以允许
img
位于
noscript
元素的
head
元素的内部

但是,如果将
noscript
元素放置在
正文中,则可以在
noscript
中包含
img
,因为在这种情况下,内容模型是:

透明,但不能有
noscript
元素子体


透明意味着它与其父元素具有相同的内容模型。例如,如果
noscript
div
中,它可能包含
div
可能包含的任何内容(除了另一个
noscript
)。

如@Aplet123和@unor所说,您可以将
元素移动到主体中。我已经在我的网页上这样做了,它似乎没有不良影响的工作

为了检查,我使用了Chrome的Facebook Pixel helper,它的行为与我的页面的上一个版本完全相同,根据Facebook示例代码,头部有
元素


最后,为了让HTML验证程序满意,您还需要添加一个
alt=“Facebook pixel”
或类似于您的
元素。

您不能将内容放在头部。但是,可以将noscript移动到主体中。