ilch Forum » Allgemein » Plauder Ecke » javascript fehler mit Zufallsbanner

Geschlossen
  1. #1
    User Pic
    Ahrtas Moderator
    Registriert seit
    17.12.2007
    Beiträge
    2.368
    Beitragswertungen
    210 Beitragspunkte
    Hallo also ich habe folgendes Script aus dem Inet gefischt:

    <script language="JavaScript" type="text/javascript">
    <!--
    var image = new Array();
    var link = new Array();
    
    /** Hier die (Zufalls)-Banner eintragen. **/
    
    image[1] = 'BildUrl';
    image[2] = 'BildUrl';
    
    
    /** Hier die (Zufalls)-Links eintragen. **/
    
    link[1] = 'Link';
    link[2] = 'Link';
    
    
    /** Ab hier nichts mehr ändern! **/
    
    var num = Math.random();
    var ran = Math.floor((image.length - 1) * num) + 1;
    document.getElementById('container') = ('<a href="' + link[ran] + '"><img src="' + image[ran] + '" border="0" />');
    //-->
    </script>

    für den body das dann
    <div id="container"></div>


    Theoretisch müsste es doch so funktionieren oder?

    Mit document.write anstelle von document.getElementById('container') wird es normal ausgegeben - jedoch möchte ich die Zufallsbanner in einer positionierten Div-Box anzeigen.

    Leider bin ich in Javascript garnicht bewandert, kann mir da bitte jemand weiterhelfen der mehr von Javascript versteht? lächeln
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Revolution Hall Of Fame
    Registriert seit
    14.08.2006
    Beiträge
    1.688
    Beitragswertungen
    109 Beitragspunkte
    Wie wäre es mit .innerHTML damit sollte es eigentlich laufen lachen


    document.getElementById('container').innerHTML  = ('<a href="' + link[ran] + '"><img src="' + image[ran] + '" border="0" />');



    ps. es fehlt noch der schließende </a> Tag

    Zuletzt modifiziert von Revolution am 19.03.2014 - 13:41:28
    Kreativ, modern, Conversion und Usability optimiert
    individuelles Webdesign für ein optimales Erscheinungsbild
    404studios
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Ahrtas Moderator
    Registriert seit
    17.12.2007
    Beiträge
    2.368
    Beitragswertungen
    210 Beitragspunkte
    Also habe das Ganze jetzt auf www.theperfectstyle.de eingebaut.

    Und dort funktioniert das auch nicht, selbst wenn ich den verlinkte Bannercode durch ein einfaches "hallo" ersetze passiert nichts. traurig

    Ich verstehs's einfach nicht, kann es vielleicht sein dass ein anderes Javascript Faxen macht bzw. den Zufallsbanner annuliert?


    Zuletzt modifiziert von -saarlonz- am 19.03.2014 - 16:34:17
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    corian Entwickler
    Registriert seit
    16.06.2011
    Beiträge
    1.096
    Beitragswertungen
    122 Beitragspunkte
    Versuche es mal so...

    <script language="JavaScript" type="text/javascript">
    <!--
    var image = new Array();
    var link = new Array();
    
    /** Hier die (Zufalls)-Banner eintragen. **/
    
    image[1] = 'BildUrl';
    image[2] = 'BildUrl';
    
    
    /** Hier die (Zufalls)-Links eintragen. **/
    
    link[1] = 'Link';
    link[2] = 'Link';
    
    
    /** Ab hier nichts mehr ändern! **/
    
    var num = Math.random();
    var ran = Math.floor((image.length - 1) * num) + 1;
    window.onload= function() { 
    document.getElementById('container') = ('<a href="' + link[ran] + '"><img src="' + image[ran] + '" border="0" />');
    };
    //-->
    </script>
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    Wenn das alles so nicht geht sollte man versuchen den Fehler woanders zu suchen.

    var image = [];
    var link = [];
    
    image[1] = 'BildUrl';
    image[2] = 'BildUrl';
    
    link[1] = 'Link';
    link[2] = 'Link';
    
    var num = Math.random();
    var ran = Math.floor((image.length - 1) * num) + 1;
    window.onload = function () {
        document.getElementById('container').innerHTML = '<a href="' + link[ran] + '"><img src="' + image[ran] + '" border="0" />';
    };


    "Uncaught TypeError: Cannot set property 'innerHTML' of null "

    Hab jetzt nicht nachgeschaut, ob es diese Stelle ist, aber da wäre eben das Problem, dass beim Laden der JavaScript-Datei das Element mit der ID container noch gar nicht vorhanden ist.

    Daher window.onload, wie es corian schon geschrieben hat. 'new Array()' ist im Übrigen auch nicht das wahre. zunge

    Zuletzt modifiziert von dastiii am 19.03.2014 - 20:31:39
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    ja dann schau dir mal api.jquery.com/ready/ an
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Ahrtas Moderator
    Registriert seit
    17.12.2007
    Beiträge
    2.368
    Beitragswertungen
    210 Beitragspunkte
    wenn ich window-onload einfüge wird kein Content geladen - die Seite bleibt dann nur noch weiß -.-
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    corian Entwickler
    Registriert seit
    16.06.2011
    Beiträge
    1.096
    Beitragswertungen
    122 Beitragspunkte
    Du kannst auch mal versuchen das script ans ende der Seite zu setzen dann müsste es auch ohne onload gehen.
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    und wieso nimmst du nicht document ready?
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Ahrtas Moderator
    Registriert seit
    17.12.2007
    Beiträge
    2.368
    Beitragswertungen
    210 Beitragspunkte
    ZitatZitat geschrieben von corian
    Du kannst auch mal versuchen das script ans ende der Seite zu setzen dann müsste es auch ohne onload gehen.
    Das war die Lösung danke - funktioniert. lächeln

    @Holz
    habe keine Ahnung von Javascript. Habe zwar bisschen rumprobiert mit der Ready-Funktion, habe es aber entweder falsch eingefügt oder etwas anderes hat nicht gepasst und somit hab ich diese Möglichkeit weggelassen.

    Habe auch einen Slider eingebaut, aber das CMS fügt den Content irgendwie komisch zusammen - ka auf jeden Fall funktioniert es jetzt so. ^^
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Plauder Ecke

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten