Anhand von Cookies verschiedene Werbung ausliefern.
Alter Mann
- javascript
Hallo,
ich muss etwas ausholen. Aus Serverlastgründen habe ich meine Webseite mit einem Caching ausgestattet. Hierbei werden die Seiten einmal generiert und dann im Caching verzeichnis (LIVE) abgelegt wo sie die nächsten 24 Stunden abgerufen werden können.
Nun habe ich nur ein Problem ich kann die Nutzer nur schwer differenzieren und Ihnen ggf. mehr Inhalte anzeigen. Daher habe ich mir überlegt Sie anhand von Cookies zu differenzieren.
Einfache Regel:
User A hat kein Cookie besucht die Seite und sieht 1 Werbebanner.
User B hat ein Cookie besucht die Seite und sieht 2 Werbebanner.
Da Javascript sofern ich die Doku verstanden habe funktioniert
if(document.cookie){ machwas(); }
Nur wie kann ich dann folgenden Adservercode aktivieren?
<script src="http://mein-adserver.de/scripts/skyer.js" type="text/javascript"></script>
Denn
if(document.cookie){
<script src="http://mein-adserver.de/scripts/skyer.js" type="text/javascript"></script>
}
kann ja nicht klappen ;-)
Om nah hoo pez nyeetz, Alter Mann!
Du könntest den entsprechenden Elementen eine Klasse verpassen, die display: none;
enthält.
Matthias
مرحبا
Du könntest den entsprechenden Elementen eine Klasse verpassen, die
display: none;
enthält.
Besteht eigentlich die Gefahr, dass der Inhalt von auf display:none;
gesetzten Elementen im Hintergrund doch geladen wird?
mfg
Om nah hoo pez nyeetz, Malcolm Beck´s!
Besteht eigentlich die Gefahr, dass der Inhalt von auf
display:none;
gesetzten Elementen im Hintergrund doch geladen wird?
In dem Fall bestimmt, denn das Script arbeitet ja unabhängig davon.
Matthias
مرحبا
Besteht eigentlich die Gefahr, dass der Inhalt von auf
display:none;
gesetzten Elementen im Hintergrund doch geladen wird?In dem Fall bestimmt, denn das Script arbeitet ja unabhängig davon.
Tatsächlich, schade.
mfg
ola,
if(document.cookie){
<script src="http://mein-adserver.de/scripts/skyer.js" type="text/javascript"></script>
}
> kann ja nicht klappen ;-)
Natürlich nicht, du schreibst es ja als HTML Code in einer JS Anweisung. :) Du könntest z.b.
`document.write('<script src="http://mein-adserver.de/scripts/skyer.js" type="text/javascript"></script>');`{:.language-javascript}
nutzen, was allerdings kein guter Stil ist. Besser wäre sich ein Element zu basteln und es an der richtigen Stelle anzuhängen - Get natürlich nur wenn der DOM Baum bis dahin aufgebaut ist - und ist davon abhängig wie das externe Skript funktioniert.
~~~javascript
if(document.cookie)
{
Werbung = document.createElement('script');
Werbung.src = 'http://mein-adserver.de/scripts/skyer.js';
Werbung.async = true;
document.getElementById('Werbeanzeiger').appendChild(Werbung);
} else { /* Anderer Werbebanner */ }
Ungetestet.
mfg,
Rolfi
Hallo,
Da Javascript sofern ich die Doku verstanden habe funktioniert
if(document.cookie){ machwas(); }
Nein, das Lesen eines konkreten Cookies funktioniert anders. if (document.cookie) prüft, ob überhaupt ein Cookie existiert, denn document.cookies ist ein String, der sämtliche Cookies in einem bescheuerten Format enthält. Du solltest eine Helferfunktion wie getCookie verwenden, um einen konkreten Cookie zu prüfen. Denn höchstwahrscheinlich setzen fremde Scripte noch viele weitere Cookies.
Denn
if(document.cookie){
<script src="http://mein-adserver.de/scripts/skyer.js" type="text/javascript"></script>
}
> kann ja nicht klappen ;-)
Im Prinzip so, wie Rolfi sagt, siehe auch [JavaScript asynchron laden](http://molily.de/weblog/javascript-asynchron).
Ob das Werbescript es zulässt, asynchron geladen zu werden, müsstest du überprüfen. Wenn es selbst mit document.write() arbeitet und an der Stelle im DOM steht, wo das Banner eingefügt wird, dann müsstest du auch document.write() verwenden, um es fallweise einzufügen.
Grüße,
Mathias
--
[Chaplin.js – JavaScript application architecture using Backbone.js.](http://chaplinjs.org/)