| Autor |
Beitrag |
Hack Gott
      
Beiträge: 409
Windows Vista
Delphi 2005 Personal, Delphi 7
|
Verfasst: Mi 27.02.08 18:31
Guten Abend allerseits,
Gegeben:
- ein Banner von SponsorAds (da ich nichts von Layern halte)
- eine ansonsten völlig Werbefreie Website (mit PHP Unterstützung)
- meine Webiste, komplett realisiert mit HTML, Ajax, PHP und JavaScript
- die Website wird kein einziges Mal neu geladen, ich lade immer nur mit Ajax die neuen Seiten, in einen div
- der Code um den Banenr einzubinden <script type="text/javascript" src="http://www.sponsorads.de/script.php?s=107521"></script>
Gesucht:
Eine Lösung  (was war auch anderes zu erwarten?  ). Und zwar: Ich will den Banner nur in einem einzigen Div anzeigen (also nur auf einer einzigen Seite bei den contents). Wenn ich den Code für den Banner aber einfach in die Datei bei den Contents reinkopiere (am Ende) dann zeigt er den Banner nicht und lädt ihn auch nicht, nur wenn ich auf Quelltext anzeigen klick steht der Code dafür da.
Der Banner wird NUR dann angezeigt, wenn er in dem "Originalquelltext" ist. Also: Seite lädt (beim Betreten), dann ist er da und dann sobald ich klicke weg (klar ist ja auch beabsichtigt, da der div anderster gefüllt wird). Wenn ich den Banenr jetzt aber nicht auf die Startseite sonden da hin mach, was die Füllung für das Div ist klappt es nicht.
Ich hoffe das war jetzt nicht alles viel zu verwirrend und mir kann jemand hier weiterhelfen... Ich sitze schon seit Stunden an dem Problem mit ausprobieren und googlen...
Danke
Arne
_________________ "Je mehr Käse, desto mehr Löcher; Je mehr Löcher, desto weniger Käse. Daraus folgt: Je mehr Käse desto weniger Käse!"
|
|
golgol
      
Beiträge: 58
Win XP Prof. / Linux
C# (VS 2005)
|
Verfasst: Do 28.02.08 08:42
Naja, das müsste wie folgt gehen:
- Du schreibst dir ein php-Skript, was nichts anderes ausgibt als den Banner (also auch ohne <html> und <body>!)
- Du fürgst bei dem div ein onLoad="javascript:Bla()" ein
- Du lädst in der Funktion Bla() die Seite und fängst den Request ab und pferchst ihn ins Div
Ein nettes Hilfsmittel für AJAX ist übering Prototype JS. Damit würde dann Bla() aussehen wie folgt:
Quelltext 1: 2: 3: 4:
| function Bla() { new Ajax.Updater(myDiv, "http://meine.domain.de/banner.php"); } |
Aber das nur als Tipp am Rande 
|
|
Hack Gott 
      
Beiträge: 409
Windows Vista
Delphi 2005 Personal, Delphi 7
|
Verfasst: Do 28.02.08 21:04
golgol hat folgendes geschrieben: |
- Du schreibst dir ein php-Skript, was nichts anderes ausgibt als den Banner (also auch ohne <html> und <body>!)
|
Gemacht!
golgol hat folgendes geschrieben: | - Du fürgst bei dem div ein onLoad="javascript:Bla()" ein
|
Div Elemente kennen keinen onLoad Tag!
golgol hat folgendes geschrieben: |
- Du lädst in der Funktion Bla() die Seite und fängst den Request ab und pferchst ihn ins Div
|
Die Funktion die Ich hab heißt doIt(Page, DIV), spielt ja aber keine Rolle...
Also Eigenversuch gestartet: Image mit onLoad versehen (im div). Ergebniss: Code wird zwar da hin gemacht, was er soll, es wird aber kein Banner angezeigt... =(
_________________ "Je mehr Käse, desto mehr Löcher; Je mehr Löcher, desto weniger Käse. Daraus folgt: Je mehr Käse desto weniger Käse!"
|
|
golgol
      
Beiträge: 58
Win XP Prof. / Linux
C# (VS 2005)
|
Verfasst: Fr 29.02.08 08:45
Hack Gott hat folgendes geschrieben: |
golgol hat folgendes geschrieben: | - Du fürgst bei dem div ein onLoad="javascript:Bla()" ein
|
Div Elemente kennen keinen onLoad Tag! |
Hupps, stimmt - sorry, ist schon eine Weile her.
Hack Gott hat folgendes geschrieben: | | Also Eigenversuch gestartet: Image mit onLoad versehen (im div). Ergebniss: Code wird zwar da hin gemacht, was er soll, es wird aber kein Banner angezeigt... =( |
Das Div wird also geupdated aber das reine Bild erscheint nicht? Das wäre extrem seltsam... *grbl*
|
|
Xong
      
Beiträge: 113
WIN 2000
Borland Developer Studio 2006
|
Verfasst: Fr 29.02.08 09:03
Wie soll man dir ohne Beispielseite oder Quelltext helfen?
Du hast einen Fehler auf der Seite. Wo? Keine Ahnung!
|
|
Hack Gott 
      
Beiträge: 409
Windows Vista
Delphi 2005 Personal, Delphi 7
|
Verfasst: Fr 29.02.08 14:43
Ok, nach dem dezenten Hinweis von Xong (  ) jetzt Beispielcode... Ich habe das alles jetzt extrem abgespeckt... es klappt aber trotzdem nicht:
Meine Index.txt
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64:
| <html> <head> <script type="text/javascript"> <!-- function doIt(Page, DIV){ //erstellen des requests var req = null;
try{ req = new XMLHttpRequest(); } catch (ms){ try{ req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (nonms){ try{ req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed){ req = null; } } }
if (req == null) alert("Error creating request object!"); //anfrage erstellen (GET, url ist localhost, //request ist asynchron req.open("GET", Page, true);
//Beim abschliessen des request wird diese Funktion ausgeführt req.onreadystatechange = function(){ switch(req.readyState) { case 4: if(req.status!=200) { alert("Fehler:"+req.status); }else{ //schreibe die antwort in den div container mit der id content document.getElementById(DIV).innerHTML = req.responseText; } break; default: return false; break; } }; req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); req.send(null); } //--> </script> </head> <body> <div id="test"> Hallo! <a href="javascript:doIt('banner.txt', 'test');">Hier klicken.</a> </div> </body> </html> |
Und noch meine banner.txt
Quelltext 1: 2: 3:
| Hier kommt der Banner...
<script type="text/javascript" src="http://www.sponsorads.de/script.php?s=107519"></script> |
Der Text aus der Banner.txt datei wird angezeigt, im Quelltext der Seite sehe ich auch den Script tag, aber es entsteht kein banner auf der Seite.
Was ich noch vergessen habe: Ich benutze Linux mit Firefox, denke aber nicht, dass es damit zusammenhängt... Im Konqueror tritt das Problem nämlich genauso auf...
Danke
_________________ "Je mehr Käse, desto mehr Löcher; Je mehr Löcher, desto weniger Käse. Daraus folgt: Je mehr Käse desto weniger Käse!"
|
|
Xong
      
Beiträge: 113
WIN 2000
Borland Developer Studio 2006
|
Verfasst: Fr 29.02.08 16:07
Hack Gott hat folgendes geschrieben: | Ok, nach dem dezenten Hinweis von Xong ( ) [...] |
Ich bin auf Ajax nicht besonders gut zu sprechen, wenn es falsch eingesetzt wird.
Du schreibst nach dem Laden eines Dokuments einen <script>-Bereich in ein Div. "Okay!", sagt sich der Browser. "Steht halt da so rum...". Aber weiter passiert nichts.
Das Script, das du lädst wird nicht ausgeführt. Das kannst du an einem Beispiel sehen, indem du z.B. folgendes in die banner.txt schreibst:
Quelltext 1: 2: 3:
| <script type="text/javascript"> document.writeln('juhuhu'); </script> |
Es wird nichts passieren.
Du wirst die Datei anders dynamisch einbinden müssen. Am besten serverseitig.
Achja, deine Seite ist nicht valide. Ein Großteil von Fehlern kann mit einer konformen Seite ausgeschlossen werden. Das ist aber hier nicht dein Problem.
LG,
Xong
|
|
|