document.write + original quelltext
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
aktuellen stelle
art
auslese
bedeutung
bekannten anbieter
besseren vorschlag
code
definieren
dom
domain
element
http
idee
letzten post
nachladen
streich
tag
text
url
werbung
-
Hallo LC,
ich will Werbung von einen tag/bekannten anbieter">bekannten Anbieter einblenden... diese bieten ein einen JS an den man einbauen soll.
Dies führt dazu das die Werbung sofort geladen wird das will ich aber nicht.
Da bin ich auf die Idee gekommen die Werbung nach einer bestimmten zeit per document.write() einzubetten. Dies
überschreibt aber den bisherigen quelltext komplett. Ich will es aber nur "dazu" schreiben. Hat jemand eine Idee? oder einen besseren
Vorschlag wie ich die Werbung im nachhinein einbinden kann?
mfg
Christian -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du kannst auch ein Element definieren, wo die Werbung hinsoll:
<div id="werbung"></div>
Und diesen dann mit
document.getElementById("werbung").innerHTML = "WERBUNG WIRD HIER EINGEBLENDET"
Damit könntest du des machen =)
Liebe Grüße -
ggamee schrieb:
Du kannst auch ein Element definieren, wo die Werbung hinsoll:
<div id="werbung"></div>
Und diesen dann mit
document.getElementById("werbung").innerHTML = "WERBUNG WIRD HIER EINGEBLENDET"
Damit könntest du des machen =)
Liebe Grüße
jaein, hab ich auch gedacht/ versucht :)
Die werbung wird aber mit einen Javascript eingefügt & der wird so nicht ausgeführt....
<script type=\"text/javascript\" src=\"****\"><\/script>
:/ -
Dann halt so:
Du hast doch Wahrscheinlich Javascript + HTML. Um Javascript nachzuladen gäbe es die Möglichkeit, dass du entweder den Code per Ajax fetched und dann mit eval ausführst (ganz pöse!!!) oder du versuchst dieshier:
var snode = document.createElement( 'script' ); snode.setAttribute( 'type' , 'text/javascript' ); snode.setAttribute( 'src' , 'http://deinewerbung.de/script.js' ); document.getElementsByTagName( 'head' )[0].appendChild( snode ); document.getElementById( 'werbung' ).innerHTML = "HTML der Werbung";
Damit sollte es eigentlich klappen, weil du jetzt nicht nur HTML hinzufügst, sondern du fügst eine neue Node hinzu, also ein neues Element. Dieses sollte eigentlich auch geprased werden.
Liebe Grüße -
ggamee schrieb:
Was ist an “Code per AJAX fetchen und mit eval ausführen“ so böse? Wenn du ein Javascript mit dem Script-Tag und src einbindest ist das etwas sehr ähnliches... und per Ajax kannst du nur Scripts von der selben Domain nachladen...
Um Javascript nachzuladen gäbe es die Möglichkeit, dass du entweder den Code per Ajax fetched und dann mit eval ausführst (ganz pöse!!!) -
gibt es keinen document.write "dazuschreibbefehl" xDDD
Denn eigentlichen Quelltext der Werbung hab ich nicht der wird ja vom Anbieter generiert...
Aber Danke schonmal für die mühe! -
hackyourlife schrieb:
ggamee schrieb:
Was ist an “Code per AJAX fetchen und mit eval ausführen“ so böse? Wenn du ein Javascript mit dem Script-Tag und src einbindest ist das etwas sehr ähnliches... und per Ajax kannst du nur Scripts von der selben Domain nachladen...
Um Javascript nachzuladen gäbe es die Möglichkeit, dass du entweder den Code per Ajax fetched und dann mit eval ausführst (ganz pöse!!!)
Hast du auch Recht, aber ich bin nen wenig gegen eval ärlergisch. Aber hast du irgendwie recht, in Javascript verliert es seine Bedeutung, ebenso wie ich in PHP einfach nen include nutze statt nen öffnen, auslesen und eval. Ok, dann streich die Zeile^^
In meinem letzten Post habe ich quasi schon gezeigt, wie du dazu schreiben kannst. Es gäbe innerHTML und innerText, ich glaube aber nicht, dass du das suchst, das hast du ja schon als "nicht funkionierend" bezeichnet. Du kannst eine Node erstellen und diese irgendwo hinzufügen, mittels:
var node = document.createElement( 'div' ); node.setAttribute( 'id' , 'werbung' ); document.getElementById( 'rechtebox').addChild( node );
Sowas in der Art. Das wäre dan schönes, altmodisches DOM-Handling.
Wenn du nur ein Javascript laden willst, wäre es wohl das einfachste, nachdem hackyourlife eigentlich recht hat, dass eval nichts böses ist, das mit einer xmlHttpRequest, also Ajax nachzuladen und dann auszuführen. Falls du jQuery benutzt geht es sogar noch leichter mit:
$.getScript( 'http.//werbung.de/script.js' );
Damit kannst du Javascript nachladen, und es wird auch direkt ausgeführt.
Warum document.write so komisch wirkt habe ich bisher auch noch nicht verstanden, aber das muss man wohl so hinnehmen...
Liebe Grüße -
ggamee schrieb:
Eine ganz einfache Erklärung: wenn die Seite noch aufgebaut wird kannst du mit document.write an der aktuellen Stelle im "document" Text (oder HTML oder sonst was) einfügen, was dann als nächstes auch ausgewertet wird.
Warum document.write so komisch wirkt habe ich bisher auch noch nicht verstanden, aber das muss man wohl so hinnehmen...
Wenn die Seite einmal fertig aufgebaut wurde wird das "document" "abgeschlossen". Wenn du jetzt aber nochmal mit document.write was ausgibst, wo soll das denn hingeschrieben werden? Das "document" ist ja schon abgeschlossen, deshalb wird einfach ein neues erstellt, was zu dem "komischen" Verhalten führt. -
Achsoooo, das machts irgendwie logisch :)
Danke Hackyourlife, das ist eine super Erklärung.
Liebe Grüße -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage