错误验证W3C HTML5 img noscript facebook.com

Igo*_*gor 5 html javascript html5 w3c-validation noscript

我正在尝试将我的页面验证为HTML 5(W3c).我有以下错误:此处不允许使用"img"元素(作为"noscript"元素的子元素).当"head"的子元素时,"noscript"元素必须只包含以下子元素:"link","style"和"meta".

在网站https://developers.facebook.com/docs/ads-for-websites/conversion-pixel-code-移植推荐我的代码:"复制并粘贴升级后的代码片段<head>;和</head>;在您的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>
Run Code Online (Sandbox Code Playgroud)

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

uno*_*nor 3

W3C\xe2\x80\x99s HTML5 规范定义了元素中noscript元素的内容模型,head如下所示:

\n\n
\n

[\xe2\x80\xa6] 以任何顺序,零个或多个link元素,零个或多个style元素,以及零个或多个meta元素。

\n
\n\n

正如您所看到的,它不能包含除link//元素之外的任何内容。所以不,\xe2\x80\x99s 不可能修改任何内容以允许元素内部的元素。stylemetaimgnoscripthead

\n\n

但是,如果将元素放在 中,则可以拥有img的内部,因为内容模型在这种情况下是这样的:noscriptnoscriptbody

\n\n
\n

透明,但不能有noscript元素后代。

\n
\n\n

透明意味着它与其父元素具有相同的内容模型。例如,如果 thenoscript位于 a 内div,则它可能包含 a 可能包含的任何内容div(除了 another noscript)。

\n