webForumDet fria alternativet

Crossbrowser?

7 svar · 262 visningar · startad av Jesper T

Jesper TMedlem sedan nov. 20017 058 inlägg
#1

Hej, finns det något i denna kod som skulle kunna få den mera crossbrowser?

function iRsObject(){
  this.interval = 500;
  this.attempts = 3;  
  this.call = function (){
    var i = new Image();
    var d = new Date();
    document.cookie = 'iRs=1; expires=Wed, 31 Dec 2030 23:59:59 GMT;';
    i.src = 'default.aspx' + '?u=' + d.getTime()
    setTimeout( "iRs.receive(1);", this.interval );
  }  
  this.receive = function ( attempt ){  
                   var response = null;
                   var aCookie = document.cookie.split("; ");
                   for (var i=0; i < aCookie.length; i++){
                     var aCrumb = aCookie[i].split("=");
                     if (aCrumb[0] == 'iRs') response = aCrumb[1];
                   }
                   if ( response != null ){
                     this.callback( unescape(response.replace(/\+/g,' ')) );
                   } else {
                     if (attempt < this.attempts){
                       setTimeout( "iRs.receive( " + (attempt+1) +" );",this.interval);
                     } else {
                       this.failure();
                     }
                   }    
                 }
  this.callback = function( response ){ 
                    alert(response); 
                  }
  this.failure = function(){ 
                   //alert( "Timed out"); 
                 }
}
var iRs;
Peter SMedlem sedan dec. 20025 484 inlägg
#2

Det ser väl okej ut. Har du upplevt att koden fungerar dåligt i någon bläddrare?

:)

Jesper TMedlem sedan nov. 20017 058 inlägg
#3

Japp, i firefox 0.9 klickar det. Får "Timed out".

Peter SMedlem sedan dec. 20025 484 inlägg
#4

Hm, det bör rimligtvis innebära att cookiesträngen inte parsas som du tänkt dig. Testa detta och se vad du får för värde:

...
var aCrumb = aCookie[i].split("=");
alert(aCrumb[0]);
...

:)

Jesper TMedlem sedan nov. 20017 058 inlägg
#5

En blank alert tre gånger i rad får jag då.

Jesper TMedlem sedan nov. 20017 058 inlägg
#6

Testade att göra alert på kakan som helhet och fick även då blankt i alerten

document.cookie = 'iRs=1; expires=Wed, 31 Dec 2030 23:59:59 GMT;';
alert(document.cookie);
Jesper TMedlem sedan nov. 20017 058 inlägg
#7

Nej, nu är det jag som är dum i skallen.
Det är en föredel om webbläsaren acceperar cookies också... :r
Tack och förlåt Peter S för onödigt arbete.

Peter SMedlem sedan dec. 20025 484 inlägg
#8

:e

Genererad på 368 ms · cache AV · v20260730165559-full.f96bc7eb