Bannerrotation
Astronaris
- javascript
Ich habe im Internet ein Script für eine Bannerrotation gefunden, bei der die Banner alle paar Sekunden wechseln. Ich hätte es aber gerne so, dass die Banner nicht alle paar Sekunden, sondern lediglich bei jedem Seitenaufruf wechseln. Was muss ich ändern? Ich habe leider keinerlei Ahnung von Javascript und wäre für Hilfe sehr dankbar.
<script type="text/javascript">
var imgs1 = new Array("url_bild01.gif","url_bild02.gif","url_bild03.gif","url_bild04.gif","url_bild05.gif");
var lnks1 = new Array("http://www.link_1_url","http://www.link_2_url","http://www.link_3_url","http://www.link_4_url","http://www.link_5_url");
var alt1 = new Array("Topsite1","Topsite2","Topsite3","Topsite4","Topsite5");
var currentAd1 = 0;
var imgCt1 = 5;
function cycle1() {
if (currentAd1 == imgCt1) {
currentAd1 = 0;
}
var banner1 = document.getElementById('adBanner1');
var link1 = document.getElementById('adLink1');
banner1.src=imgs1[currentAd1]
banner1.alt=alt1[currentAd1]
document.getElementById('adLink1').href=lnks1[currentAd1]
currentAd1++;
}
window.setInterval("cycle1()",20000);
</script>
Om nah hoo pez nyeetz, Astronaris!
Ich habe im Internet ein Script für eine Bannerrotation gefunden, bei der die Banner alle paar Sekunden wechseln. Ich hätte es aber gerne so, dass die Banner nicht alle paar Sekunden, sondern lediglich bei jedem Seitenaufruf wechseln. Was muss ich ändern? Ich habe leider keinerlei Ahnung von Javascript und wäre für Hilfe sehr dankbar.
Das ist schon garnicht so einfach, denn wenn du wirklich eine Rotation willst, musst du den Inhalt der Variable currentAd1 über das Neuladen der Seite hinweg retten. Dafür würde sich ein Cookie (Zustimmung erforderlich) oder die Verwendung des lokal storage anbieten. Wesentlich einfacher würde es sich gestalten, wenn du bei jedem Seitenaufruf ein Banner zufällig ausgewählt wird.
Matthias
Aloha ;)
Dafür würde sich ein Cookie (Zustimmung erforderlich) oder die Verwendung des lokal storage anbieten.
Hm, ich frage mich: Wenn exakt dieselben Daten gespeichert würden, warum soll sich dann die Notwendigkeit einer Zustimmung unterschiedlich verhalten?
Selbst wenn das aktuell streng nach Rechtssprechung noch so wäre - lang wird sich das wohl nicht halten...
Grüße,
RIDER
Hallo, RIDER!
Danke erstmal für deine Antwort. Leider hilft mir diese nicht weiter, weil ich von Programmieren keine Ahnung habe. Und da ich höchstwahrscheinlich nie wieder mit so was tun haben werde, macht es auch keinen Sinn, wenn ich mich da einarbeite. Meine Kenntnisse beschränken sich lediglich auf HTML und CSS. Gibt es nicht eine einfache Lösung ohne Cookie oder lokal storage? Und wie würde diese konkret aussehen?
Mahlzeit,
Und wie würde diese konkret aussehen?
Die, von dir gewünschte, Lösung sieht so aus: Du suchst dir jemanden, der Ahnung hat, gibts ihn Geld und lässt ihn dann dein Problem lösen.
Hallo,
Dafür würde sich ein Cookie (Zustimmung erforderlich) oder die Verwendung des lokal storage anbieten.
Hm, ich frage mich: Wenn exakt dieselben Daten gespeichert würden, warum soll sich dann die Notwendigkeit einer Zustimmung unterschiedlich verhalten?
der entscheidende Unterschied ist doch der, dass im Fall von Cookies die gespeicherte Information jederzeit wieder zum Anbieter zurück übertragen wird, während sie im Fall von Local Storage beim Client verbleibt und nur dort genutzt wird.
Ciao,
Martin
Hakuna matata!
Dafür würde sich ein Cookie (Zustimmung erforderlich) oder die Verwendung des lokal storage anbieten.
Hm, ich frage mich: Wenn exakt dieselben Daten gespeichert würden, warum soll sich dann die Notwendigkeit einer Zustimmung unterschiedlich verhalten?
Es ist eine weit verbreiteter Irrtum, dass die Cookie-Richtlinie sich auf nur auf Cookies auswirkt. Es geht darin sehr viel allgemeiner und unabhängig von konkreten technischen Implementationen darum, was man mit und ohne ausdrückliches Einverständnis des Nutzers tracken darf. Sofern ich das einschätzen kann, geht es dabei nicht um die Daten, die eine Webseite beim Nutzer lokal abspeichert, sondern um Daten, die an den Server gesendet werden.
Wenn man Cookies für die clientseitige Speicherung von Daten einsetzt, dann muss man sich darüber bewusst sein, dass die Daten bei jedem Request an den Server übermittelt werden. Beim localStorage ist das nicht der Fall.
Man kann natürlich auch Daten aus dem localStorage mit AJAX an den Server übermitteln, aber damit hat man auf keinen Fall die Cookie-Richtlinie ausgetrickst. Jenachdem welche Daten an den Server geschickt werden, muss trotzdem das Einverständnis des Nutzers eingeholt werden.
In diesem konkreten Fall, wo es nur um den letzten Stand der Banner-Rotation geht, müsste vermutlich auch nicht auf das Cookie hingewiesen werden, weil es sich dabei nicht um Tracking-Code handelt.
Hallo Camping_RIDER,
so weit ich weiß, gilt die Cookie-Einstellung auch für LocalStorage.
Gruß, Jürgen
Hallo Camping_Rider!
Vielen Dank für deine Antwort! Leider hilft mir diese nicht weiter, da ich nicht über Programmierkenntnisse verfüge. Und da ich mit sehr großer Wahrscheinlich nie wieder mit so was zu tun haben werde, macht es auch keinen Sinn, wenn ich mich da einarbeite. Meine Kenntnisse beschränken sich auf HTML und CSS. Gibt es nicht einfachere Lösung ohne Cookie oder lokal storage? Und wie würde diese praktisch aussehen?
Hallo, Matthias!
Vielen Dank für deine Antwort! Die Reihenfolge, in der die Banner angezeigt werden, ist mir egal. Die können auch zufällig ausgewählt werden.
Mir ist schon klar, dass dieser Teil des Scripts die Banner in bestimmten Zeitabständen rotieren lässt:
window.setInterval("cycle1()",20000);
Ich möchte aber gerne, dass bei jedem Seitenwechseln ein anderer Banner angezeigt wird, weil ich es als nervig empfinde, wenn alle paar Sekunden was anderes angezeigt wird. Was muss ich bei dem Script ändern?
Om nah hoo pez nyeetz, Astronaris!
Ich möchte aber gerne, dass bei jedem Seitenwechseln ein anderer Banner angezeigt wird, weil ich es als nervig empfinde, wenn alle paar Sekunden was anderes angezeigt wird. Was muss ich bei dem Script ändern?
<script>
[code lang=javascript] var imgs1 = new Array(…);
var lnks1 = new Array(…);
var alt1 = new Array(…);
var currentAd1 = Math.floor(Math.random() * (imgs1.length + 1));
var banner1 = document.getElementById('adBanner1');
var link1 = document.getElementById('adLink1');
banner1.src=imgs1[currentAd1];
banner1.alt=alt1[currentAd1];
link1.href=lnks1[currentAd1];
</script>[/code]
ungetestet
Matthias
Da tut sich leider gar nichts. In der HTML-Datei, an der Stelle, wo die Banner erscheinen sollen, habe ich Folgendes stehen:
<a href="www.example1.com" title="Topsite1" target="_blank" id="adLink1" name="adLink1"><img src="www.banner1" id="adBanner1" border="0" width="468" height="60" alt="" name="adBanner1" /></a>
"example1" und "Banner1" habe ich nur natürlich durch den Banner, der als erstes erscheinen soll, ersetzt. Das hat beim Wechsel alle paar Sekunden auch funktioniert.
Hallo Astronaris,
Da tut sich leider gar nichts. ...
dann setz mal das Script an das Ende der Seite, also vor das </body>.
Gruß, Jürgen
Liebe Mitdenker,
liebe Wissende,
liebe Neugierige,
ja!
Ich habe im Internet ein Script für eine Bannerrotation gefunden, bei der die Banner alle paar Sekunden wechseln. Ich hätte es aber gerne so, dass die Banner nicht alle paar Sekunden, sondern lediglich bei jedem Seitenaufruf wechseln. Was muss ich ändern?
Mach es nicht clientseitig, sondern serverseitig
Bisschen schwer zu finden. Die Fachartikel werden irgendwie versteckt.
Spirituelle Grüße
Euer Robert
Hakuna matata!
Bisschen schwer zu finden. Die Fachartikel werden irgendwie versteckt.
Dieser Artikel dürfte auch noch etwas tiefer versteckt sein, etwa so tief, wie er entfernt von der Praxis ist. Um in PHP zufällig zwischen Bannern zu wechseln, reicht auch folgender Code:
<?php
$banners = array_shuffle(['banner1.png','banner2.png','banner.3png']);
?>
<img src="<?= htmlsepcialchars($banners[0]); ?>" alt="Gestelle Stockfotografie von Leuten, die Spaß im Büro haben">
Obendrauf, demonstriert der Artikel auch einen ganz miserablen Programmierstil. Den Artikel sollten wir wirklich entfernen oder in den Benutzernamensraum von Thomas verbannen. Einwände?