/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Ajax - virker i GC og FF men ikke i IE
Fra : Mads


Dato : 10-09-11 00:24

Hej Gruppe
Jeg har fundet et ajaxscript som jeg ikke kan få til at virke i IE 9,
men det virker i Google Chrome og FireFox

Koden:

<script language="javascript">
function createRequestObject() {

var req;

if(window.XMLHttpRequest){
// Firefox, Safari, Opera...
req = new XMLHttpRequest();
} else {
// There is an error creating the object,
// just as an old browser is being used.
alert("Your Browser Does Not Support This Script - Please Upgrade
Your Browser ASAP");
}

return req;

}

// Make the XMLHttpRequest object
var http = createRequestObject();

function sendRequest(page) {

// Open PHP script for requests
http.open('get', page);
http.onreadystatechange = handleResponse;
http.send(null);

}

function handleResponse() {

if(http.readyState == 4 && http.status == 200){

// Text returned FROM the PHP script
var response = http.responseText;

if(response) {
// UPDATE ajaxTest content
document.getElementById("msgstatus").innerHTML = response;
}

}

}

function repeatloop()
{
sendRequest('ajax.php');
setTimeout("repeatloop()", 10000);
}

window.onload=function() {
repeatloop();
}
</script>

</head><body>

<span id="msgstatus"></span>

</body>


ajax.php
<?php
echo rand();
?>

 
 
Birger Sørensen (10-09-2011)
Kommentar
Fra : Birger Sørensen


Dato : 10-09-11 08:54

Mads kom med følgende:
> Hej Gruppe
> Jeg har fundet et ajaxscript som jeg ikke kan få til at virke i IE 9,
> men det virker i Google Chrome og FireFox
>
> Koden:
>
> <script language="javascript">
> function createRequestObject() {
>
> var req;
>
> if(window.XMLHttpRequest){
> // Firefox, Safari, Opera...
> req = new XMLHttpRequest();
> } else {
> // There is an error creating the object,
> // just as an old browser is being used.
> alert("Your Browser Does Not Support This Script - Please Upgrade
> Your Browser ASAP");
> }
>
> return req;
>
> }
>
> // Make the XMLHttpRequest object
> var http = createRequestObject();
>
> function sendRequest(page) {
>
> // Open PHP script for requests
> http.open('get', page);
> http.onreadystatechange = handleResponse;
> http.send(null);
>
> }
>
> function handleResponse() {
>
> if(http.readyState == 4 && http.status == 200){
>
> // Text returned FROM the PHP script
> var response = http.responseText;
>
> if(response) {
> // UPDATE ajaxTest content
> document.getElementById("msgstatus").innerHTML = response;
> }
>
> }
>
> }
>
> function repeatloop()
> {
> sendRequest('ajax.php');
> setTimeout("repeatloop()", 10000);
> }
>
> window.onload=function() {
> repeatloop();
> }
> </script>
>
> </head><body>
>
> <span id="msgstatus"></span>
>
> </body>
>
>
> ajax.php
> <?php
> echo rand();
> ?>

Hvis du fortæller os hvad der går galt....
Hvad sker der som du ikke forventer - eller hvad sker der som du havde
forventet...
Gives der er en fejlmeddelelse?

Så vidt jeg kan se, er den vist ellers god nok.
Der enereres kun eet http-object, og det kan være det der generer IE;
function sendRequest(page) {
// Open PHP script for requests
http = createRequestObject();
http.open('get', page);
http.onreadystatechange = handleResponse;
http.send(null);
}
Det kan også være
if(http.readyState == 4 && http.status == 200){
der mangeler et par paranteser:
if((http.readyState == 4) && (http.status == 200)){

Ellers se
http://bbsorensen.dk/?men=Software/AJAX

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Stig Johansen (12-09-2011)
Kommentar
Fra : Stig Johansen


Dato : 12-09-11 08:04

Birger Sørensen wrote:

> Så vidt jeg kan se, er den vist ellers god nok.
> Der enereres kun eet http-object, og det kan være det der generer IE;

Ja, _pr request_.
At bruge en enkelt global variabel til gentagne requests er nok ikke det
smarteste.

Måske bliver IE forvirret over hvilken instans der skal bruges.

--
Med venlig hilsen
Stig Johansen

Erik Ginnerskov (10-09-2011)
Kommentar
Fra : Erik Ginnerskov


Dato : 10-09-11 22:21

Mads wrote:
> Hej Gruppe
> Jeg har fundet et ajaxscript som jeg ikke kan få til at virke i IE 9,
> men det virker i Google Chrome og FireFox

Ud over hvad Birger har skrevt bare denne kommentar:

> <script language="javascript">

bør i stedet være

<script type="text/javascript">

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk


Mads (11-09-2011)
Kommentar
Fra : Mads


Dato : 11-09-11 12:56

> Hvis du fortæller os hvad der går galt....
> Hvad sker der som du ikke forventer - eller hvad sker der som du havde
> forventet...
> Gives der er en fejlmeddelelse?

Den skulle hente et tilfældig tal hvert sekund. I IE kommer kun det
første tal frem - altså den skifter ikke til et nyt hvert sekund. Der
kommer ingen fejlmeddelser.

Jeg har også prøvet dine ændringsforslag uden held.

Mads

Birger Sørensen (12-09-2011)
Kommentar
Fra : Birger Sørensen


Dato : 12-09-11 09:18

Mads har bragt dette til verden:
>> Hvis du fortæller os hvad der går galt....
>> Hvad sker der som du ikke forventer - eller hvad sker der som du havde
>> forventet...
>> Gives der er en fejlmeddelelse?
>
> Den skulle hente et tilfældig tal hvert sekund. I IE kommer kun det
> første tal frem - altså den skifter ikke til et nyt hvert sekund. Der
> kommer ingen fejlmeddelser.
>
> Jeg har også prøvet dine ændringsforslag uden held.
>
> Mads

Har du et link?
Det er lidt svært at gætte, ud fra en kode, der ellers ser ud til at
være OK...

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Mads (12-09-2011)
Kommentar
Fra : Mads


Dato : 12-09-11 12:32

> Har du et link?
> Det er lidt svært at gætte, ud fra en kode, der ellers ser ud til at
> være OK...

http://www.naknemo.dk/ajax/

Birger Sørensen (12-09-2011)
Kommentar
Fra : Birger Sørensen


Dato : 12-09-11 21:58

Mads skrev den 12-09-2011:
>> Har du et link?
>> Det er lidt svært at gætte, ud fra en kode, der ellers ser ud til at
>> være OK...
>
> http://www.naknemo.dk/ajax/

Linien
http.open('get', page);
mangler angivelse af synkron eller ej (synkron stopper udførelse af
script, indtil kaldet er færdigt)

http.open('get', page, false);

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Mads (13-09-2011)
Kommentar
Fra : Mads


Dato : 13-09-11 12:13

On 12 Sep., 22:57, Birger Sørensen <s...@bbsorensen.com> wrote:
> Mads skrev den 12-09-2011:
>
> >> Har du et link?
> >> Det er lidt svært at gætte, ud fra en kode, der ellers ser ud til at
> >> være OK...
>
> >http://www.naknemo.dk/ajax/
>
> Linien
> http.open('get', page);
> mangler angivelse af synkron eller ej (synkron stopper udførelse af
> script, indtil kaldet er færdigt)
>
> http.open('get', page, false);

Det gav desværre ingen virkning. Sætter ellers pris på dine bud!
Mads


Birger Sørensen (13-09-2011)
Kommentar
Fra : Birger Sørensen


Dato : 13-09-11 21:38

Mads:
> On 12 Sep., 22:57, Birger Sørensen <s...@bbsorensen.com> wrote:
>> Mads skrev den 12-09-2011:
>>
>>>> Har du et link?
>>>> Det er lidt svært at gætte, ud fra en kode, der ellers ser ud til at
>>>> være OK...
>>
>>> http://www.naknemo.dk/ajax/
>>
>> Linien
>> http.open('get', page);
>> mangler angivelse af synkron eller ej (synkron stopper udførelse af
>> script, indtil kaldet er færdigt)
>>
>> http.open('get', page, false);
>
> Det gav desværre ingen virkning. Sætter ellers pris på dine bud!
> Mads

Det eneste jeg kan se, er at du genbruger AJAX-objektet, og det er
sjældent en god ide.
prøv at oprette et byt object inden i sendRequest() i stedet for...

var http = null; // ingen grund til at oprette object her, men
variablen skal defineres udenfor funktionerne, for at være global

function sendRequest(page) {
// Open PHP script for requests
http = createRequestObject();
http.open('get', page, false);
http.onreadystatechange = handleResponse;
http.send(null);
}

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407824
Brugere : 218875

Månedens bedste
Årets bedste
Sidste års bedste