Hvis du bruker en av XHTML-utgavene som anbefales servert med application/xhtml+xml, som for eksempel XHTML 1.0 strict eller XHTML 1.1, da vil du ikke uten videre kunne tilby Google AdSense-annonser på sidene dine. Men det finnes en løsning!
Problemet er at Google bruker Document.Write() til å lage en iframe for annonsene, og Document.Write() virker ikke i XML. Hvis du allerede serverer nettsidene dine med application/xhtml+xml så tar jeg det nesten som en selvfølge at du bruker content negotiation, slik at nettlesere som ikke takler application/xhtml+xml (kremt: Internet Explorer) i stedet blir servert text/html. Om du så gjør så finnes det en brukbar løsning på AdSense og application/xhtml+xml-problemet. Slik kan du få AdSense til å virke på nettsider servert med application/xhtml+xml:
Først lager du en separat nettside med MIME type text/html, den kan du kalle for object.php:
<?php header("Content-Type: text/html;charset=iso-8859-1"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="nb">
<head>
<title>Annonse</title>
<style type="text/css">
html, body {
margin:0;
padding:0;
border:0;
font-family:"Trebuchet MS", geneva, arial, sans-serif;
overflow:hidden;
}
</style>
</head>
<body>
Standard AdSense-JavaScript limes inn her.
</body>
</html>
Deretter setter du den inn i dine XHTML-sider som et <object>. Da skal vi bruke den eksisterende koden som du har i ditt content negotiation-skript til å avgjøre om det er nødvendig eller ikke, hvis variabelen er application/xhtml+xml så skal object.php bli inkludert i XHTML-dokumentet, hvis ikke så kan det vanlige AdSense-JavaScriptet kjøres. Slik ser koden ut hos meg:
<?php
if(stristr($_SERVER["HTTP_ACCEPT"], "application/xhtml+xml")) {
print " <object data=\"object.php\" type=\"text/html\"></object>\n";
} else {
?>
Standard AdSense-JavaScript limes inn her.
<?php
}
?>
Resultatet blir altså at, for eksempel Internet Explorer, som allikevel ikke får noe annet enn text/html, får AdSense-JavaScriptet som allerede er i XHTML-dokumentet, mens moderne nettlesere som takler application/xhtml+xml får annonsene fra object.php satt inn med <object>.
Gratulerer, du kan nå tjene deg rik på nettanonnsering, og spise godt og leve lykkelig alle dine dager!
Flott
dette var mer enn jeg visste om, og jeg koder utelukkende ved hjelp av xhtml.
Vær oppmerksom på at dette kun gjelder hvis du serverer nettsidene dine med
application/xhtml+xml, hvis du serverer dem medtext/htmltil alle nettlesere, da kan du bruke Google AdSense-annonser uten å bruke denne teknikken.Serverer utelukkende med application/xhtml/xml. Men jeg har ikke hatt problem med IE (tror jeg) til tross for dette.
Jeg har dog "stjålet" Meta taggene fra en annen side for en stund siden, hvor jeg lurer på om følgende tagger kan ha noe påvirkning på IE:
<meta name="MSSmartTagsPreventParsing" content="true" /><meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" />Både sidene og Google ads vises og klikka blir registrert til tross for xhtml 1.1 og application/xhtml/xml.
hmm… mye jeg ikke kan i denne verden
Jeg sjekket akkurat nettsiden din og den serveres ikke som
application/xhtml+xml, den blir servert somtext/html. Det er derfor du ikke har problemer med AdSense-annonsene dine.Koden du henviser til gjør ingen nytte for seg, du må sette
MIME typepå serversiden, for eksempel med PHP eller.htaccesshmm… jeg mente: lennart-fylling.com/glweb

Men i følge Firefox har jeg text/html der også???
Uansett, klippe og lime var ikke så lurt i kommentarboksen din. Her er taggene jeg skulle vise deg i forrige post:
Meta name=MSSmartTagsPreventParsing content=trueMeta-http-equiv=Content-Type name=application/xhtml/xml; charset=iso 8859-1I og med at DTD-en min er xhtml 1.1 og den skal serveres med ..
xhtml+xml, så vet jeg ikke lengerTror jeg går over til gamlemetoden min (php for å servere visse ting til IE)
Jeg har rettet opp kommentaren din slik at koden vises nå. Men bruk funksjonen for forhåndsvisning, ting som ikke fungerer fjerner du før du poster. Takk.
Som nevnt så må du sette
MIME typepå serversiden.