• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Google Empfehlung XHTML konform

NetAktiv

Senior HTML'ler
Hallo,

will man die Google-Empfehlung in die Homepage integrieren, so muss man einen Eintrag wie folgt machen:

HTML:
<-- g:plusone irgendwo im Dokument hardcoded reserviert die Position-->
<g:plusone size="medium" href="http://html.de.de"></g:plusone>

<!-- Google Empfehlung einblenden, Aufruf am Ende des Dokuments -->
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">  
{lang: 'de'}
</script>

Will man allerdings XHTML konform bleiben, dann bleibt nur, den Google-Tag <g:plusone> dynamisch mittels Javascript ins Dokument zu schreiben.
HTML:
<-- g:plusone irgendwo im Dokument dynamisch reserviert die Position-->
<script type="text/javascript">
    document.write('<g:plusone size="medium" href="http://html.de"><\/g:plusone>');
</script>

<!-- Google Empfehlung einblenden, Aufruf am Ende des Dokuments -->
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
  {lang: 'de'}
</script>

Lösung 1 klappt bei all meinen Versuchen, Lösung 2 bei den neuen Versionen von 5 installierten Browsern (IE9, Safari 5, FF 5, Chrome 12, Opera 11) und vermutlich auch bei vielen älteren (Tests wären klasse). Nicht klappen tut es bei IE 8.0 (und vermutlich erst recht älteren Versionen des IE).

Hat jemand eine Idee, wie ich Lösung 2 auch bei IE 8 (und möglichst 7) zum Laufen bekomme oder muss ich in den sauren Apfel beißen und entweder nicht-konform sein oder auf die Google-Empfehlung zu verzichten.

Grüße, Rainer

Hinweis: Sehe ich mir das Ergebnis von 2 in den Entwicklertools an, dann wurde <g:plusone> bei IE9 durch ein div mit eingebettetem iframe ersetzt, bei IE8 ist noch das <g:plusone> zu sehen.

P.S: Meine ehrliche Meinung ist, wenn man solche Anstrengungen unternehmen muss, nur um den Validator auszutricksen, und man sich nichts als Probleme damit einhandelt, dann lieber Verzicht auf Konformität.
 
Werbung:
Na echt toll. Ich lese diese Seite bis zum <g:plusone ....>,
binde das ein und bin super froh, dass es klappt. Dann lass ich es durch den Validator laufen und bekomm es um die Ohren gehauen. Danach Suche ich ne Weile im Internet bis ich auf den document.write stoße und bin wieder glücklich. Heute war ich unterwegs und will stolz meine neue Seite zeigen und weit und breit keine Google-Empfehlung zu sehen. Ich versuch weiter, das Problem einzugrenzen und komm einfach nicht drauf, dabei hätte alles auf der Seite gestanden, wenn ich die nur zu Ende gelesen hätte.

Gut, dass es Leute wie dich gibt, die dann auch weiter lesen, mich hast nun glücklich gemacht :-), danke
 
Werbung:
document.write() umgeht das Problem nur. Eine echte Lösung ist das nicht. Streng genommen ist document.write() in XHTML-Dokumenten nicht einmal erlaubt, wenn man bedenkt, dass diese eigentlich XML sind (text/html vs. application/xhtml+xml).

Also <g:plusone size="medium" href="http://html.de"></g:plusone> nehmen und den Namespace bekannt machen:
HTML:
<html ... xmlns:g="http://code.google.com/apis/+1button/">

In HTML5 werden solche Namespaces iirc einfach ignoriert.
 
Hallo Crash,

mir würde der Ansatz mit dem Namespace ja schon besser gefallen als die Javascript Lösung. Aber weder mit dem von dir angegebenen NS noch mit den folgenden, die ich noch im Internet gefunden habe, funktioniert es:

xmlns:g="http://base.google.com/ns/1.0"
xmlns:g="http://schemas.google.com/g/2005"

Der Validator sagt immer, dass er g:eek:neplus und dessen Attribute nicht kennt. Da man eh mit Javascript hinterher das Objekt verändert, stecke ich nun nicht mehr viel Zeit da rein, aber danke für den Hinweis.
 
Der Validator kann nicht mit Namensräumen umgehen. Schlussfolgerungen ist also die Fehler zu ignorieren. Das verschleiern bringt überhaupt keine Punkte.
 
Werbung:
Zurück
Oben