Avatar billede mothwe Nybegynder
11. februar 2001 - 02:34 Der er 5 kommentarer og
1 løsning

Netscape kompatibilitetsprob - HASTER !!!

Hvorfor virker følgende script IKKE i Netscape???

function setVariables() {
imgwidth=65;  // logo bredde, i pixels
imgheight=74;  // logo højde, i pixels
if (navigator.appName == \"Netscape\") {
horz=\".left\";
vert=\".top\";
docStyle=\"document.\";
styleDoc=\"\";
innerW=\"window.innerWidth\";
innerH=\"window.innerHeight\";
offsetX=\"window.pageXOffset\";
offsetY=\"window.pageYOffset\";
}
else {
horz=\".pixelLeft\";
vert=\".pixelTop\";
docStyle=\"\";
styleDoc=\".style\";
innerW=\"document.body.clientWidth\";
innerH=\"document.body.clientHeight\";
offsetX=\"document.body.scrollLeft\";
offsetY=\"document.body.scrollTop\";
  }
}
function checkLocation() {
objectXY=\"logo\";
var availableX=eval(innerW);
var availableY=eval(innerH);
var currentX=eval(offsetX);
var currentY=eval(offsetY);
x=(availableX-610)/2+610-(imgwidth)+currentX;
y=availableY-(imgheight+20)+currentY;
evalMove();
setTimeout(\"checkLocation()\",10);
}
function evalMove() {
eval(docStyle + objectXY + styleDoc + horz + \"=\" + x);
eval(docStyle + objectXY + styleDoc + vert + \"=\" + y);
}
Avatar billede jmf Nybegynder
11. februar 2001 - 02:43 #1
Måske fordi Netscape er skod og ikke understøtter scripts så godt som Explorer.

/JmF
Avatar billede mothwe Nybegynder
11. februar 2001 - 02:45 #2
Tak for det fantastisk gode svar ?!?! Iøvrigt har du ret (Netscape skodder) - men man må jo være prof og vise hensyn til de stakler der bruger den!
Avatar billede erikjacobsen Ekspert
11. februar 2001 - 08:57 #3
Check http://www.dansteinman.com/dynduo/
for en forklaring på hvordan man klarer IE4+ og NS4.
Den tager dog ikke højde for NS6.

Det er noget med at syntaksen for at tilgå stykes
er anderledes. Fejlen får du vel i linien
  eval(docStyle + objectXY + styleDoc + horz + \"=\" + x);
Avatar billede jakoba Nybegynder
11. februar 2001 - 10:08 #4
i function evalMove() skriver du objectXY i begge linier. Mon ikke det skulle være objectX i første linie og objectY i anden.
Men med den fejl burde det heller ikke virke i IE ???
Avatar billede jakoba Nybegynder
12. februar 2001 - 20:08 #5
fandt  objectXY  variablen. ovenstående bedes ignoreret.

Som aflad har jeg skrevet koden om så den hvis/når den kører skulle køre 3-5 gange så hurtigt. eval( ... ) er DYR i cpu og memory.

var imgwidth  = 65;  // logo bredde, i pixels
var imgheight = 74;  // logo højde, i pixels
var NS = (navigator.appName==\"Netscape\")?true:false;

function checkLocation() {
  var availableX= (NS)?window.innerWidth:document.body.clientWidth;
  var availableY= (NS)?window.innerHeight:document.body.clientHeight;
  var currentX = (NS)?window.pageXOffset:window.pageYOffset;
  var currentY = (NS)?window.pageYOffset:document.body.scrollTop;
  x = availableX/2 +305 -imgwidth +currentX;
  y = availableY -imgheight +20 +currentY;
  if (NS) {
    document.logo.left = x;
    document.logo.top = y;
  } else {
    logo.style.pixelLeft = x;
    logo.style.pixelTop = y;
  };
  setTimeout(\"checkLocation()\",10);
}; //end checkLocation()
Avatar billede mothwe Nybegynder
13. februar 2001 - 15:55 #6
Jakoba - du får pointene fordi du har været kreativ! Men imellemtiden har jeg fundet ud af at den oprindelige kode rent faktisk VIRKER i Netscape (bare ikke i Netscape 6 ???). Så nu vil jeg alligevel prøve om dit script virker !
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