30. april 2002 - 13:50Der er
7 kommentarer og 1 løsning
Opera og JavaScript
I opera 6, understøttes da kun ting som onclick osv.?? Jeg har følgende kode:
<script language=JavaScript> var basis=387; if (is.ie && !is.ieopera) { var ba=basis; } else { if (is.ns && !is.ieopera) { var adding=-16; var ba=parseInt(basis)+parseInt(adding); } else { var adding=16; var ba=parseInt(basis)+parseInt(adding); } } document.writeln("<div id='arrow1' style='position:absolute; left:114px; top:" + ba + "px; width:78px; height:21px; z-index:3; visibility: hidden'>"); </script>
Her skulle ba blive 387 i IE, og ba skulle blive 387-16 i NS og så skulle ba blive 387+16 i andre browsere og til sidst skulle den givne browser lave et layer ved hjælp af ba-værdien. MEN i Opera gider den slet ikke lave nogen layer. I IE og NS virker det fint (jeg har endda tidligere bedt specifikt efter Opera, uden held).
Jeg ville jo gerne have at tingene så pæne ud i alle tre browsere, men det bliver da lidt svært hvis Opera ikke understøtter JavaScript bare i denne udstrækning(jeg HAR tilvalgt JavaScript...).
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
du kan godt lave og bruge layers i opera. i opera6 siges det ikke er noget dokument.all array så der er du nødt til at bruge getElementById('arrow1') for at få fat i en reference til dit layer.
Det bør du under alle omstændigheder gøre i browsere der har funktionen getElementById
Jeg har fået lidt på fornemmelsen at det er document.write(ln) den ikke kan finde ud af. For jeg har ikke haft andre problemmer med layers i Opera...
Så jeg er gået lidt over i en anden - måske bedre - grøft og lader noget javascript ændre på layerens style EFTER den er lavet.. Og der er jeg løbet ind i det hvor getElementById er noget nyt for mig (og tilsyneladende nødvendigt...) Det er samme metode til NS, oder was?? :)
NS4 har sin helt egen, men den kræver vist at din <div kommando har en NAME='arrow1' attribut udover den ID='arrow1' du allerede har: document.layers['arrow1']
I første omgang ns6 (én browser ad gangen, det tror jeg vist er en fordel:))
Det som i ie hedder document.all('arrow1').style.top=ba; er det i ns6 document.getelementbyid['arrow1'].style.top=ba;
eller er jeg bare en smule tæt på? :)) Jeg har prøvet med buede og kantede, med eller uden style, ' og " men det vil ikke rigtigt. Før den har jeg var adding=-16; var ba=parseInt(basis)+parseInt(adding); hvor hvor basis bare er en konstant.
næsten korrekt. men der er to ting der skal rettes: 1) JavaScript ser forskel på store og små bogstaver så getElementById skal staves præcis sådan, med stort E, B og I. 2) getElementById er en funktion så der skal stå buede parenteser bagefter ( ). de kantede klammer er til at slå op i arrays.
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.