[JS] Stylesheet importeren IE of NS

Pagina: 1
Acties:

  • jvaneijk
  • Registratie: Mei 2003
  • Laatst online: 11-03 09:53
Ik heb een functie die nagaat met welke browser de site is geopend
deze werkt perfect Maar als het Netscape is dan moet er een ander stylesheet geladen worden en daar komt het probleem.

dit is de code die ik gebruit.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script language="javascript" src="/_shared/includes/js/inc_browserinfo.js"></script>

<script language="javascript">
<!--
        if (BinIE)
        {
            document.write('<link rel="stylesheet" type="text/css" href="/includes/css/inc_style.css">');
        }
        else
        {
            document.write('<link rel="stylesheet" type="text/css" href="/includes/css/inc_stylens.css">');
        }
-->
</script>


Waar BinIE de de variabele is die de functie inc_browserinfo.js teruggeeft.

Maar mijn probleem is nu dat document.write het niet doet ik heb alles al nagezocht maar kan niets vinden.
Er zit ergens iets fout maar ik weet niet waar want mijn stylesheet geeft hij niet weer.

iRacing Profiel


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

als BinIE() de waarde terug zou geven, zou dit niet een "true" of "false" zijn, zoals je die in een if-else constructie zou kunnen gebruiken. jij checkt alleen of de er iets ge-returnd wordt. dus zorg ervoor dat (als je alleen 2 keuzes hebt, IE of NS) er een return true/false uit je functie komt, maar beter is volgens mij iets als:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<script language="javascript" src="/_shared/includes/js/inc_browserinfo.js"></script>

<script language="javascript">
<!--
        BinIE();
        if (BinIE == "IE") {
            document.write('<link rel="stylesheet" type="text/css" href="inc_style.css">');
        }
        else if (BinIE == "NS") {
            document.write('<link rel="stylesheet" type="text/css" href="inc_stylens.css">');
        }
-->
</script>

dan kun je namelijk meerdere mogelijkheden/stylesheets meegeven. zorg ervoor dat in je functie gewoon aan het eind return BinIE; staat en die dus "IE" of "NS" terug geeft. ik ben niet zo'n ster in Javascript! so correct me if i'm wrong :)

edit: bah, André weet het weer eens beter :+ maar wij zijn tweakers, dus programmeren wij zelf een oplossing :Y)

[ Voor 19% gewijzigd door X-Lars op 03-02-2004 13:19 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 09:23

crisp

Devver

Pixelated

onzin, een functie kan best true of false teruggeven:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
function BinIE() {

  if (typeof window.ActiveXObject != 'undefined') return true;
  else return false;

}

if (BinIE())
  // IE
else
  // non-IE


ik zou eerst checken of de paden wel kloppen...

Intentionally left blank


  • André
  • Registratie: Maart 2002
  • Laatst online: 26-05 00:33

André

Analytics dude

Maar het is niet gezegd dat BinIE een functie is, het kan net zo goed een string zijn, of een boolean.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 09:23

crisp

Devver

Pixelated

André schreef op 03 februari 2004 @ 13:25:
Maar het is niet gezegd dat BinIE een functie is, het kan net zo goed een string zijn, of een boolean.
true, maar wij weten niet hoe inc_browserinfo.js eruit ziet, dus dat blijft gissen ;)

Intentionally left blank


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

klopt crisp, dat weet ik wel, maar TS heeft er
code:
1
if(BinIE)
staan, dat kun je veranderen in
code:
1
if(BinIE())
(zoals ik probeerde aan te geven met mijn uiterst opvallende ()) en daarna gaf ik een oplossing die wat flexibeler is imho..

edit: ik was en ben nog steeds een beetje ongelukkig in mijn uitleg.. volgende keer beter

[ Voor 16% gewijzigd door X-Lars op 03-02-2004 13:28 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 09:23

crisp

Devver

Pixelated

X-Lars schreef op 03 februari 2004 @ 13:27:
klopt crisp, dat weet ik wel, maar TS heeft er
code:
1
if(BinIE)
staan, dat kun je veranderen in
code:
1
if(BinIE())
(zoals ik probeerde aan te geven met mijn uiterst opvallende ()) en daarna gaf ik een oplossing die wat flexibeler is imho..

edit: ik was en ben nog steeds een beetje ongelukkig in mijn uitleg.. volgende keer beter
Maar een variabele dezelfde naam geven als een functie; zeker als het een globale variabele is, is natuurlijk vragen om problemen ;)

Intentionally left blank


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

crisp schreef op 03 februari 2004 @ 13:30:
[...]

Maar een variabele dezelfde naam geven als een functie; zeker als het een globale variabele is, is natuurlijk vragen om problemen ;)
klopt ook, had ik aan gedacht, maar ik dacht ook: laat ik het de TS maar niet moeilijker maken dan het is, want volgens mij moet het wel werken (alhoewel ik daar nou al niet meer zo zeker van ben - niet echt veel zin om te gaan proberen nu)

  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

jvaneijk, what about it?! je moet er nu wel uitkomen toch?

  • jvaneijk
  • Registratie: Mei 2003
  • Laatst online: 11-03 09:53
Ja hartstikke bedankt allemaal, Ik ben er inmiddels uit en alles werkt nu helemaal naar behoren tenminste naar behoren wil ik niet zeggen maar hij importeerd eindelijk de CSS moet nu alleen nog de ene zo aanpassen dat het hetzelfde lijkt als dezelfde pagina in IE\

iRacing Profiel


Verwijderd

Het is BTW wel een stomme oplossing. Want het kan meestal makkelijker door het gewoon goed te doen (1), mensen kunnen JS uitschakelen (2), je zou ook via een link header het style sheet alleen naar Mozilla kunnen sturen (3), enige die dat ondersteund.
Pagina: 1