Autor Beitrag
Hack Gott
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 409

Windows Vista
Delphi 2005 Personal, Delphi 7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 58

Win XP Prof. / Linux
C# (VS 2005)
BeitragVerfasst: Do 28.02.08 08:42 
Naja, das müsste wie folgt gehen:


  1. Du schreibst dir ein php-Skript, was nichts anderes ausgibt als den Banner (also auch ohne <html> und <body>!)
  2. Du fürgst bei dem div ein onLoad="javascript:Bla()" ein
  3. 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:

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 409

Windows Vista
Delphi 2005 Personal, Delphi 7
BeitragVerfasst: Do 28.02.08 21:04 
user profile icongolgol hat folgendes geschrieben:

  1. Du schreibst dir ein php-Skript, was nichts anderes ausgibt als den Banner (also auch ohne <html> und <body>!)

Gemacht!
user profile icongolgol hat folgendes geschrieben:
  1. Du fürgst bei dem div ein onLoad="javascript:Bla()" ein

Div Elemente kennen keinen onLoad Tag!
user profile icongolgol hat folgendes geschrieben:

  1. 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 58

Win XP Prof. / Linux
C# (VS 2005)
BeitragVerfasst: Fr 29.02.08 08:45 
user profile iconHack Gott hat folgendes geschrieben:

user profile icongolgol hat folgendes geschrieben:
  1. 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.

user profile iconHack 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 113

WIN 2000
Borland Developer Studio 2006
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 409

Windows Vista
Delphi 2005 Personal, Delphi 7
BeitragVerfasst: Fr 29.02.08 14:43 
Ok, nach dem dezenten Hinweis von Xong (:wink:) jetzt Beispielcode... Ich habe das alles jetzt extrem abgespeckt... es klappt aber trotzdem nicht:

Meine Index.txt
ausblenden volle Höhe Quelltext
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
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 113

WIN 2000
Borland Developer Studio 2006
BeitragVerfasst: Fr 29.02.08 16:07 
user profile iconHack Gott hat folgendes geschrieben:
Ok, nach dem dezenten Hinweis von Xong (:wink:) [...]

Ich bin auf Ajax nicht besonders gut zu sprechen, wenn es falsch eingesetzt wird. :roll:


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:
ausblenden 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