PDA

Volledige versie bekijken : XML.load() doet vreemd in IE6


Bruno
%Europe/Berlin %004 %2005, 01:06
Hallo iedereen,

Momenteel werk aan een gastenboek in Flash MX, dat gebruik maakt van een LoadVars-object om berichten door middel van een PHP-script in de database op te slaan. Vervolgens wordt de (vernieuwde) inhoud (via een PHP-script) in een XML-object geladen, waarmee ik de inhoud daarna in een tekstvak plaats.

Aanvankelijk stuurde ik het nieuwe bericht naar de server, door de methode send() aan te roepen en het URL van het PHP-script als argument mee te geven. Macromedia beweert immers, dat er dan automatisch gebruik wordt gemaakt van de POST methode.
Vreemd genoeg vertoonde Firefox een vervelende bijverschijnsel: het opende ongevraagd een nieuwe tabblad. En Internet Explorer 6 deed helemaal niets.

Uiteindelijk besloot ik om maar gebruik te maken van de methode sendAndLoad(), waarbij ik het URL, een ander LoadVars-object en (voor de zekerheid) "POST" als argumenten aan de methode meegaf. Die 'andere' LoadVars-object fungeerde hier slechts als 'dummy' en diende verder geen enkele functie. Dit werkte wel in Firefox, maar niet Internet Explorer. :cool:

Na wat ijsberen bedacht ik, dat mijn Firefox geen gebruik maakt van de lokale proxyserver maar mijn Internet Explorer wel. Dus ik schakelde de proxyserver uit en toen werkte het opeens wél in Internet Explorer.

Maar de euforie hield niet lang aan....op andere pc's blijkt het nog steeds niet helemaal goed te werken in Internet Explorer. Het laden van het ververste gastenboek vindt pas plaats wanneer de site opnieuw geladen wordt. Zelfs als er geen gebruik wordt gemaakt van een proxyserver. Bovendien werkt het nu ook niet meer in mijn eigen Internet Explorer. :(
Alleen in Firefox werkt het probleemloos.

Voor het laden van de inhoud van het gastenboek gebruik ik in ActionScript de methode load() van een XML-object. Daar heb ik anders nooit problemen mee gehad.


Heeft iemand een idee hoe ik dit kan oplossen? :confused:

Roenes
%Europe/Berlin %007 %2005, 01:10
Je moet natuurlijk na de sendAndLoad actie weer het gastenboek verversen in flash in de onLoad van het LoadVars object. Maar aangezien het in FF werkt, ga ik ervan uit dat je dit gedaan hebt.

Daarom zul je ff je script en eventueel je php code moeten posten want wellicht zit daar de fout :)

Bruno
%Europe/Berlin %379 %2005, 10:05
Dit is de verantwoordelijke code:



var receiver = new XML();
receiver.onLoad=showMessages;

//Laad het gastenboek bij aankomst
getMessages();

//Plaats bericht in het gastenboek
submit.onRelease=submitForm;

function submitForm(){
if(checkInput()){
sendMessage();
}else{
resultaat.text="Gelieve alle velden in te vullen, anders kan het bericht niet geplaatst worden.";
}
}


function getMessages(){
receiver.load("gastenboek_php/toonberichten.php");
}

function showMessages(){
messages.htmlText=receiver.toString();

}

function checkInput(){
return true;
}

function sendMessage(){
var sender = new LoadVars();
var dummy = new LoadVars();
dummy.onLoad = getMessages;
sender.name=name.text;
sender.email=email.text;
sender.comments = message.text;
sender.sendAndLoad("gastenboek_php/berichtplaatsen.php",dummy,"POST");
}

Roenes
%Europe/Berlin %498 %2005, 12:57
Ga eens terug naar het principe van 1 LoadVars object omdat dit een stuk makkelijker werkt. Maak dat object aan op de hoofdtijdslijn en bouw je code dan om en test het opnieuw. Volgens mij zou het dan gewoon moeten werken omdat steeds dezelfde onLoad wordt aangeroepen. :)

Bruno
%Europe/Berlin %557 %2005, 14:23
Het probleem heb ik inmiddels opgelost. Er ontbrak een "stop()" aan het einde van de bovendstaande actionscript.

:)