Avatar billede lars-k Nybegynder
01. juli 2003 - 10:48 Der er 7 kommentarer og
1 løsning

Browserversion script i ekstern fil

Hej

Jeg har et script, som jeg gerne vil have lagt i en ekstern fil (som jeg allerede har).

Scriptet placerer et kort på siden afhængig af hvilken browser der anvendes.

Kan det i det hele taget lade sig gøre? Har selv prøvet uden held:-)

******************************************

<script language="JavaScript">

var imgmenu = 'variabelnavn';
var v
var h

ns4 = (document.layers)? true:false;
ns6 = (document.getElementById && !document.all)?true:false;
IE4 = (document.all && !document.getElementById)?true : false;
IE5 = (document.all && document.getElementById)?true : false;
opera = (document.all && navigator.userAgent.indexOf("Opera")>0 )?true:false;

if (imgmenu==1) {

if (ns4){
v=143
h=250
} else if (ns6){
v=145
h=177
} else if (IE4){
v=145
h=211
} else if (IE5){
v=145
h=174
} else if (opera){
v=145
h=174
}

} else if (imgmenu==2){

if (ns4){
v=3
h=250
} else if (ns6){
v=5
h=177
} else if (IE4){
v=65
h=211
} else if (IE5){
v=5
h=174
} else if (opera){
v=5
h=174
}

}

document.write ('<style type="text/css">div { position: absolute; visibility: hidden; height: 270px; width: 290px; left: '+ v +'px; top: '+ h +'px; clip: rect(  )}</style>');

</script>
Avatar billede rrm Nybegynder
01. juli 2003 - 10:59 #1
lav en js fil og så koden ned i denne undtagen <script...> og </script> Du kan så inkludere filen ved <script language="Javascript" src="fil.js"></script> og placere dette hvor scriptet skal inkluderes. Fil.js skal være navnet på den fil hvor koden ligger i.
Avatar billede lars-k Nybegynder
01. juli 2003 - 13:10 #2
Ja, det ved jeg godt...men jeg vil gerne at scriptet ikke bliber vist på alle siderne, men at det skal kaldes som en form for function...
Avatar billede roenving Novice
01. juli 2003 - 15:39 #3
Du kan sagtens ændre styles på den måde dynamisk, men så skal vi igennem document.styleSheets[0]. osv.

-- du kommer under alle omstændigheder til at mangle NS4, for en document.write kan kun udføres under opbygningen af siden, og jeg kunne ikke finde metoder til at ændre styles dynamisk i NS4 ...

Men du vil vel have den med på nogle bestemte sider, så kan du jo include den på de sider ?-)
Avatar billede lars-k Nybegynder
01. juli 2003 - 16:04 #4
...hmmm, man kan vel ikke både få i pose og sæk - jeg prøver noget andet eller beholder koden på min side...
Avatar billede lars-k Nybegynder
01. juli 2003 - 16:32 #5
>>roenving

Har lige sendt en mail til dig - vil du lige læse den...

lars-k:-)
Avatar billede roenving Novice
01. juli 2003 - 17:38 #6
Ville det iøvrigt ikke være smartere at hive den div igennem med et id, så skulle vi gerne slippe for problemer med nn6+, opera7 samt ie5+ ...

Så kunne vi positionere den, når siden iøvrigt var loadet -- i det omfang, der er tung grafik, kan det betyde at den flyttes rundt bagefter, så man lige kan nå at se den et kort øjeblik på en forkert plads ...
Avatar billede lars-k Nybegynder
01. juli 2003 - 18:31 #7
Jo, det er da et forslag, men det virker egentlig ok - bortset fra at det ikke er i den eksterne fil
Avatar billede lars-k Nybegynder
21. august 2003 - 12:29 #8
Her er løsningen:


  function isNS4() {
    if(document.layers && !isNS6())
      return true;
    return false;
  }


  function isNS6() {
    if(document.getElementById && !document.all)
      return true;
    return false;
  }


  function isIE4() {
    if(document.all && !document.getElementById)
      return true;
    return false;
  }


  function isIE5() {
    if(document.all && document.getElementById && !isIE6() && !(navigator.userAgent.indexOf("Mac") != -1))
      return true;
    return false;
  }

  function isIE5OS() {
    if(document.all && document.getElementById && !isIE6() && (navigator.userAgent.indexOf("Mac") != -1))
      return true;
    return false;
  }

  function isIE6() {
    if(navigator.appVersion.indexOf("MSIE 6") != -1)
      return true;
    return false;
  }

  function isOpera() {
    if(document.all && navigator.userAgent.indexOf("Opera")>0)
      return true;
    return false;
  }

  function calculateV(imgmenu) {
    if (imgmenu == 1) {
      if (isNS4())
        return 150;
      if (isNS6())
        return 149;
      if (isIE4())
        return 149;
      if (isIE5())
        return 149;
      if (isIE5OS())
        return 149;
      if (isIE6())
        return 149;
      if (isOpera())
        return 145;

      return 148;
    }
    if (imgmenu == 2) {
      if (isNS4())
        return 10;
      if (isNS6())
        return 9;
      if (isIE4())
        return 77;
      if (isIE5())
        return 9;
      if (isIE5OS())
        return 9;
      if (isIE6())
        return 9;
      if (isOpera())
        return 5;

      return 6;
    }
    return 100;
  }

  function calculateH(imgmenu) {
    if (imgmenu == 1) {
      if (isNS4())
        return 334;
      if (isNS6())
        return 188;
      if (isIE4())
        return 203;
      if (isIE5())
        return 195;
      if (isIE5OS())
        return 183;
      if (isIE6())
        return 195;
      if (isOpera())
        return 195;

      return 195;
    }
    if (imgmenu == 2) {
      if (isNS4())
        return 334;
      if (isNS6())
        return 188;
      if (isIE4())
        return 203;
      if (isIE5())
        return 195;
      if (isIE5OS())
        return 183;
      if (isIE6())
        return 195;
      if (isOpera())
        return 195;

      return 200;
    }
    return 200;
  }

****************************
koden på html-siden:

Værdier hentes vha. calculateV og calculateH
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