![]() |
[JS] document.write() überscheibt alles
Hallo zusammen,
ich habe eine HTML-Datei, die wie folgt aufgebaut ist:
Code:
Wenn ich in der widget.js nun etwas über document.write() ausgebe, dann wird der gesamte HTML-Code überschrieben. Hinzu kommt vor der Ausgabe ein Neuladen der Seite, was zu einem Ladevorgang führt, der nicht mehr aufhört. Gebe ich nichts aus, funktioniert alles und das Skript beendet ordnungsgemäß.
<html>
<head> <title>Widget-Test</title> </head> <body> Text <script type="text/javascript"> <!-- id = 140; //--> </script> <script type="text/javascript" src="http://localhost/pollunity/widget.js"></script> Text </body> </html> Was ist da denn los? :gruebel: Einen guten Rutsch wünscht Matze |
Re: [JS] document.write() überscheibt alles
Moin,
es waer evetnuell ganz geschickt die widget.js bzw. die relevanten Teile zu sehn, schliesslich ist da ja der Wurm drin. Die HTML-Datei ist da relativ uninteressant. On the other hand, hast du es schonmal mit ![]() Greetz alcaeus |
Re: [JS] document.write() überscheibt alles
Hi Andy,
ach du meinst der Wurm steckt darin? Hier ist der relevante Teil:
Code:
AppendChild nützt mir nichts, denn ich will den Source nicht in einen bestehenden Container einfügen, sondern möchte das so machen, wie es bei Google-AdSense der Fall ist: Man fügt nur JS ein und das wird dann "ersetzt".
var Domain = 'http://localhost/pollunity/';
var serverFileWidgetPoll = Domain + 'ajax_widget_poll.php'; var serverFileVote = Domain + 'ajax_vote.php'; var my_ajax = new sack(); my_ajax.method = "post"; my_ajax.setVar("id", poll_id); my_ajax.requestFile = serverFileWidgetPoll; my_ajax.onCompletion = function(){ show_poll(my_ajax.response); }; my_ajax.runAJAX(); function show_poll(xml) { var parser = new DOMParser(); var doc = parser.parseFromString(xml, 'text/xml'); var u_poll = doc.getElementsByTagName('u_poll')[0].firstChild.nodeValue; var question = doc.getElementsByTagName('question')[0].firstChild.nodeValue; var chart = doc.getElementsByTagName('chart')[0].firstChild.nodeValue; var answers = doc.getElementsByTagName('answer'); document.write('a'); } Über document.write() möchte ich dann HTML-Code ausgeben. Grüße, Matze Edit: [code]- durch [c]-Tag ersetzt. Edit 2: Selbst wenn in der FUnktion "show_poll()" nur ein "document.write()" steht, tritt das Problem auf. Das muss mit dem AJAX-Code zusammenhängen. |
Re: [JS] document.write() überscheibt alles
Zitat:
Setze mal das document.write() in eine Warteschleife (setTimeout), es kann naemlich durchaus sein dass der Browser zicken macht weil die Seite noch nicht komplett geladen ist. Du solltest in diesem Fall immer mit dem onload-Handler arbeiten, um sicherzustellen dass die Seite fertig ist bevor du darin rumpfuschst. Greetz alcaeus |
Re: [JS] document.write() überscheibt alles
Moin Andy
Zitat:
Code:
<script type="text/javascript"><!--
google_ad_client = "..."; google_ad_slot = "..."; google_ad_width = 468; google_ad_height = 60; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> Zitat:
Edit: Ich habe mal eine Demo hochgeladen. Das Timeout beträgt nun 3s, also nach 3s beginnt das Neuladen (zumindest im FF): ![]() Grüße, Matze |
Re: [JS] document.write() überscheibt alles
Moin,
ich bin grad aufm Sprung raus, werds mir aber heute Abend zu Hause nochmal angucken. Ich konnte das Problem im Firefox nachvollziehn, wuerde das Problem aber erstmal komplett durchtesten (sprich isolieren), ist ja schliesslich auch fuer mich interessant zu wissen worans liegt ;) Greetz alcaeus |
Re: [JS] document.write() überscheibt alles
Moin,
ich frage mich gerade, ob das mit AJAX überhaupt geht. Ich habe das testweise nun über einen zusätzlichen Div-Container mit einer eigenen ID versucht, aber im Prinzip benötige ich externen Zugriff, obwohl alles auf dem eigenen Server liegt, befürchte ich :( Grüße |
Re: [JS] document.write() überscheibt alles
Das Problem hat sich nun erledigt. Ein Workaround ist im Thread
![]() Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz