2016-02-20 5 views
5

Ich versuche meine Seite als HTML 5 (W3c) zu validieren. Und ich habe folgenden Fehler: Das "img" -Element ist hier nicht erlaubt (als Kind des "noscript" -Elements). Das "noscript" -Element muss, wenn ein untergeordnetes Element "head" ist, nur die folgenden untergeordneten Elemente enthalten: "link", "style" und "meta".Fehler Validierung W3C HTML5 img noscript facebook.com

Vor Ort https://developers.facebook.com/docs/ads-for-websites/conversion-pixel-code-migration Empfehlung für meinen Code. „Kopieren Sie den aktualisierten Code-Snippet zwischen <head> und </head>, im HTML-Code Ihrer Website, wo Sie Conversions möchten beispielsweise Registrierungen zu verfolgen, legen die Code auf Ihrer "Registrierung abgeschlossen" -Webseite. "

bitte den Quellcode sehen:

<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> 

Ist es möglich, diesen Code zu modifizieren und Validierung übergeben (in Kopfteil)?

+2

Sie können nicht Inhalt in den Kopf setzen. Sie können jedoch das Noscript in den Körper verschieben. – Aplet123

Antwort

3

W3C HTML5-Spezifikation definiert den Inhalt Modell eines noscript element im head Element wie folgt:

[…] in any order, zero or more link elements, zero or more style elements, and zero or more meta elements.

Wie Sie sehen können, ist es nichts anderes als link/style/meta Elemente enthalten kann. Also nein, es ist nicht möglich, etwas zu ändern, um ein img innerhalb eines noscript Elements innerhalb des head Elements zu ermöglichen.

Aber man kann eine img innerhalb von noscript haben, wenn Sie das noscript Element in der body platzieren, wie das Content-Modell ist in diesem Fall:

transparent, but there must be no noscript element descendants.

Transparent bedeutet, dass sie den gleichen Inhalt Modell hat als sein Elternelement. Wenn zum Beispiel noscript in einem div ist, kann es alles enthalten, was ein div enthalten kann (außer einem anderen noscript).

-1

Wie @ Aplet123 und @unor sagen, können Sie das <noscript> Element in den Körper verschieben. Ich habe das auf meinen Seiten gemacht, und es scheint ohne negative Auswirkungen zu funktionieren.

Um zu überprüfen, habe ich den Facebook Pixel Helper von Chrome verwendet, und es verhält sich genauso wie die vorherige Version meiner Seite mit dem <noscript> Element im Kopf, wie im Facebook Beispielcode.

Schließlich, um den HTML-Validator glücklich zu machen, müssen Sie auch ein alt="Facebook pixel" oder ähnliches zu Ihrem <img> Element hinzufügen.