Avatar billede dotcom1 Nybegynder
13. december 2004 - 15:10 Der er 4 kommentarer og
1 løsning

Skærmopløsning - mærkelige størrelser.

Jeg benytter følgende script som en del af et statistik-script. Det angiver de besøgendes skærmopløsning, men jeg synes at de stats, det angiver, er lidt mærkelige. Jeg får f.eks. resultater som disse: (802x601) (461x590) (1020x599) (1024x585) (1020x622) (816x599) (796x441) - Det er da nogle sjove og ret skæve opløsninger, er det ikke? Skærmopløsning plejer da at være noget med 1024x768, 800x600, osv... Hvad er det helt præcist at dette script måler? Det trækker måske browserens ramme fra, eller...?

Selve scriptet:

// screen resolution script
function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

if (!(readCookie("screen_res"))) { //only do this whole thing once per session
  function actualPageHeight() {
          if (window.innerHeight) { //
              return window.innerHeight;
              }
          else if (document.documentElement && document.documentElement.clientHeight) {
              return document.documentElement.clientHeight;
          }
          else if (document.body) {
              return document.body.clientHeight;
          }
          else return;
      }   
  function actualPageWidth() {
          if (window.innerWidth) {
              return window.innerWidth;
              }
          else if (document.documentElement && document.documentElement.clientWidth) {
              return document.documentElement.clientWidth;
          }
          else if (document.body && document.body.clientWidth) {
              return document.body.clientWidth;
          }
          else return;
      }   
  // check if cookies are enabled, if so - write the screen res cookie
    scr_width = actualPageWidth()
    scr_height = actualPageHeight()
  if ( (typeof(scr_width) == 'number') && (typeof(scr_height) == 'number') )
            {
          createCookie ("arecookiesenabled", "true", 0); //try and write a cookie
            res = scr_width +"x"+ scr_height; 
          if (readCookie("arecookiesenabled") == "true") createCookie("screen_res", res, 0);
            }
}

Mvh.
Avatar billede baitianlong Nybegynder
13. december 2004 - 15:13 #1
Ja, det er vinduets størrelse. Skærmopløsningen får du med:

screen.availWidth
screen.availHeight
Avatar billede dotcom1 Nybegynder
13. december 2004 - 15:15 #2
Ok, men kan du ændre i scriptet, så det viser skærmopløsningen med screen.availWidth og
screen.availHeight? ;)
Avatar billede baitianlong Nybegynder
13. december 2004 - 15:16 #3
// screen resolution script
function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

if (!(readCookie("screen_res"))) { //only do this whole thing once per session
  function actualPageHeight() {
        return screen.availHeight;
      }   
  function actualPageWidth() {
          return screen.availWidth;
    }   
  // check if cookies are enabled, if so - write the screen res cookie
    scr_width = actualPageWidth()
    scr_height = actualPageHeight()
  if ( (typeof(scr_width) == 'number') && (typeof(scr_height) == 'number') )
            {
          createCookie ("arecookiesenabled", "true", 0); //try and write a cookie
            res = scr_width +"x"+ scr_height; 
          if (readCookie("arecookiesenabled") == "true") createCookie("screen_res", res, 0);
            }
}
Avatar billede dotcom1 Nybegynder
13. december 2004 - 15:17 #4
Fino, den prøver jeg i stedet for. Læg et svar, legende.
Avatar billede baitianlong Nybegynder
13. december 2004 - 15:19 #5
Tilføj evt. window foran, så det bliver:

function actualPageHeight() {
        return window.screen.availHeight;
      }   
  function actualPageWidth() {
          return window.screen.availWidth;
    }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester