Avatar billede mik28 Seniormester
13. maj 2005 - 12:02 Der er 11 kommentarer og
1 løsning

Eksternt JavaScript

Hej Eksperter,

Jeg har et javascript som ser således ud

function resolution(){
      // Identificerer alle browsere
                ie6 = (navigator.appVersion.indexOf("MSIE 6") != -1) ? true : false;
                ns6 = (document.getElementById && !document.all) ? true : false;
                ns4 = (document.layers) ? true : false;
                ie5 = (!ie6 && document.getElementById && document.all) ? true : false;
                ie4 = (!ie5 && document.all) ? true : false;

                if(screen.width<1023)
                {
                document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"../style/style800.css\">");
                }
                Else
                {
                document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"../style/style1024.css\">");
                }

}
Avatar billede mik28 Seniormester
13. maj 2005 - 12:05 #1
Ideen er at jeg gerne vil kunne linke til forskellige CSS dokumenter alt efter hvilken opløsning brugeren anvender. Det virker egenligt også som det skal. Jeg kunne bare godt tænke mig at denne funktionalitet lå i mit eksterne JS dokument. Som det ser ud nu gør jeg således

<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript" src="../script/script.js"></script>

<script type="text/javascript">

// Identificerer alle browsere
ie6 = (navigator.appVersion.indexOf("MSIE 6") != -1) ? true : false;
ns6 = (document.getElementById && !document.all) ? true : false;
ns4 = (document.layers) ? true : false;
ie5 = (!ie6 && document.getElementById && document.all) ? true : false;
ie4 = (!ie5 && document.all) ? true : false;

if(screen.width<1023)
{
document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"./style/style800.css\">");
}
else
{
document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"./style/style1024.css\">");
}
</script>
</head>
Avatar billede mik28 Seniormester
13. maj 2005 - 12:07 #2
Jeg håber I forstår hvad det er jeg gerne vil
Avatar billede mik28 Seniormester
13. maj 2005 - 12:09 #3
Jeg vil gerne kunne skrive noget i den her retning

<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript" src="../script/script.js"></script>

<script type="text/javascript">
resolution();
</script>
</head>
Avatar billede roenving Novice
13. maj 2005 - 12:14 #4
Du tager bare koden og kaster først eller sidst i filen script.js, så den f.eks. starter sådan:

// Identificerer alle browsere
ie6 = (navigator.appVersion.indexOf("MSIE 6") != -1) ? true : false;
ns6 = (document.getElementById && !document.all) ? true : false;
ns4 = (document.layers) ? true : false;
ie5 = (!ie6 && document.getElementById && document.all) ? true : false;
ie4 = (!ie5 && document.all) ? true : false;

if(screen.width<1023){
document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"./style/style800.css\">");
}else{
document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"./style/style1024.css\">");
}

function ...
Avatar billede mik28 Seniormester
13. maj 2005 - 12:19 #5
Det er hvad jeg har i mit HTML dokument

<script language="JavaScript" type="text/javascript" src="./script/script.js"></script>

<script type="text/javascript">
resolution();
</script>

og i mit JS dokument

function resolution(){
      // Identificerer alle browsere
                ie6 = (navigator.appVersion.indexOf("MSIE 6") != -1) ? true : false;
                ns6 = (document.getElementById && !document.all) ? true : false;
                ns4 = (document.layers) ? true : false;
                ie5 = (!ie6 && document.getElementById && document.all) ? true : false;
                ie4 = (!ie5 && document.all) ? true : false;

                if(screen.width<1023)
                {
                document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"../style/style800.css\">");
                }
                Else
                {
                document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"../style/style1024.css\">");
                }

}
Avatar billede mik28 Seniormester
13. maj 2005 - 12:32 #6
Jeg forstår ikke helt hvorfor jeg ikke kan få det til at virke. Skal funktionen returnerer noget?
Avatar billede ldanielsen Nybegynder
13. maj 2005 - 12:39 #7
I bruger skiftevis ./ og ../

Kan du ikke bare skrive "/style/style800.css", Hvis din server understøtter det vil det betyde at det virker ligemeget hvor scriptet køres.
Avatar billede roenving Novice
13. maj 2005 - 13:35 #8
Du skal da bare:

I dit html-dokument:

<script language="JavaScript" type="text/javascript" src="./script/script.js"></script>

<!-- bemærk det andet script-tag er fjernet -->

-- og i din js-fil (ikke noget med funktion eller nogetsomhelst, og også browser-detection er ubenyttet !-)

if(screen.width<1023){
  document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"../style/style800.css\">");
}else{
  document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"../style/style1024.css\">");
}

-- Bemærk også at javascript er case-sensitiv, så der vil komme en javascript-fejl, hvis du bruger Else !-)
Avatar billede mik28 Seniormester
13. maj 2005 - 18:52 #9
Okay. Mange tak :-)
Avatar billede mik28 Seniormester
13. maj 2005 - 18:53 #10
Jeg ved godt at browserdetection er ubenyttet. Jeg tænkte bare at jeg måske kunne få brug for det i fremtiden :-)
Avatar billede roenving Novice
14. maj 2005 - 07:45 #11
Velbekomme '-)
Avatar billede roenving Novice
14. maj 2005 - 08:25 #12
-- og tak for point ;~}
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