Toon posts:

Javascript CSS redirect probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Aangezien ik nog niet veel kennis heb van javascript lukt het mij nog niet om het volgende probleem op te lossen.

Wanneer een internetpagina benaderd wordt dient gecontrolleerd te worden waar degene vanaf komt. Het is enkel van belang om te weten van welk domein de gebruiker af komt, http://gathering.tweakers.net/forum/insert_topic/10 het gaat nu alleen om http://www.gathering.tweakers.net. De site dient dit te controleren voor 3 pagina's en er zijn dus 3 (css) style sheets gemaakt.

Momenteel heb ik het volgende in de header van de site geplaatst:

<script language="JavaScript" type="text/JavaScript">
<!-- SITE1 -->
if (document.location=='http://www.site1.com')
document.write('<link href="css/site1_styles.css" rel="stylesheet" type="text/css">')
<!-- SITE2 -->
else if (document.location=='http://www.site2.com')
document.write('<link href="css/site2_styles.css" rel="stylesheet" type="text/css">')
</script>

Hier klopt echter nog helemaal niets van misschien kan iemand mij opweg helpen. Het liefst maak ik enkel gebruik van html en javascript.

  • pasta
  • Registratie: September 2002
  • Laatst online: 04-04 23:18

pasta

Ondertitel

Hint: je moet gebruik maken van referrer ipv location ;)
en als je daarmee zoekt op google krijg je genoeg voorbeelden om te gebruiken :)

Signature


  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 21-05 19:24
met document.referrer werken. Dit vraagt de pagina op waar de gebruiker vandaan komt

edit:
te laat :X

[ Voor 16% gewijzigd door kleautviool op 19-02-2004 12:04 ]


  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

Wat klopt er niet van en wat wil je precies. Je bent nu alleen maar links in de header aan het zetten en dat kan idd niet.

Als je wilt redirecten moet je window.location=href neerzetten ipv de '<link ....>'.

edit:
sorry crisp. had ik al verwacht..... ik redirect nooit met js...

[ Voor 22% gewijzigd door disjfa op 19-02-2004 12:10 ]

disjfa - disj·fa (meneer)
disjfa.nl


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

documentwindow.location !!!!

en het location object kent o.a. de volgende properties:

-host (host:port)
-hostname

[ Voor 53% gewijzigd door crisp op 19-02-2004 12:14 ]

Intentionally left blank


  • pasta
  • Registratie: September 2002
  • Laatst online: 04-04 23:18

pasta

Ondertitel

Overigens haal je het commentaar door de war.. je zet <!-- neer, maar dit is voor HTML en niet voor JavaScript, JavaScript gebruikt //

Signature


Verwijderd

Topicstarter
Alvast bedankt voor de nodige tips.

Er diend dus een verschillend css bestand geladen te worden. Dit bestand word geselecteerd aan de hand van de url waar men vanaf komt.
De "<link href ..." dien ik dan toch te gebruiken of die ik dit geheel anders te doen.
Ik weet niet of je deze controle ook in het css bestand kunt plaatsen dat zou namelijk nog makkelijker zijn. Je krijgt dan zoiets als:

IF url = Http://www.site1.com THEN
.td {
color: #FFFFFF;
}
ELSE
.td {
color: #000000;
}
END IF

Wie weet hoe ik dit het beste kan oplossen?

Verwijderd

Topicstarter
Momenteel heb ik de volgende code:

<?php
if($HTTP_SERVER_VARS["HTTP_HOST"] == www.site1.com)
{
print "<link href='css/site1.css' rel='stylesheet' type='text/css'>";
}
if($HTTP_SERVER_VARS["HTTP_HOST"] == www.site2.com)
{
print "<link href='css/site2.css' rel='stylesheet' type='text/css'>";
}
?>

Deze code leest echter de url van het frame uit. Graag zou ik de url van de hoofdsite uitlezen. Dus de style sheet dient afhankelijk te zijn van het domein (http://www.site1.com of http://www.site2.com) waar het frame zich in bevindt.
Wie kan mij helpen?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

Dus je wilt serverside uitlezen wat de url is van een ander frame...

Ik heb zo'n donkerbruin vermoeden dat dat niet kan ;)

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

Afaik kan dat niet en heeft PHP of welke serverside taal dan ook geen enkele weet van of hij in frames geladen wordt of niet. Je zult met clientside Javascript aan de gang moeten.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • pasta
  • Registratie: September 2002
  • Laatst online: 04-04 23:18

pasta

Ondertitel

en over dat clientside JavaScript gesproken... je hebt nog een bijna identiek topic lopen in W&G... :)

[ Voor 6% gewijzigd door pasta op 20-02-2004 12:06 ]

Signature


Verwijderd

Topicstarter
Ik heb inderdaad nog een topic lopen dat het zelfde probleem aanpakt maar dan vanuit javascript. Dit blijkt echter niet te gaan werken aangezien je serverside code dient te gebruiken om de style sheet weg te schrijven.
PHP leek me dus een goede oplossing voor dit probleem. Nu blijkt echter dat ik de hoofdurl niet kan uitlezen in php. De site diend in het frame te blijven anders was het een stuk simpeler geweest. Referrer werkt alleen goed voor de eerste site dus dat schiet ook niet op. Ik vraag me af of er echt geen oplossing te bedenken is |:(

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 22:24

gorgi_19

Kruimeltjes zijn weer op :9

Referrer
referrrercheck is sowieso onbetrouwbaar, aangezien deze niet altijd goed wordt doorgegeven.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Skaah
  • Registratie: Juni 2001
  • Niet online
Verwijderd schreef op 20 februari 2004 @ 12:11:
Ik heb inderdaad nog een topic lopen dat het zelfde probleem aanpakt maar dan vanuit javascript. Dit blijkt echter niet te gaan werken aangezien je serverside code dient te gebruiken om de style sheet weg te schrijven.
PHP leek me dus een goede oplossing voor dit probleem. Nu blijkt echter dat ik de hoofdurl niet kan uitlezen in php. De site diend in het frame te blijven anders was het een stuk simpeler geweest. Referrer werkt alleen goed voor de eerste site dus dat schiet ook niet op. Ik vraag me af of er echt geen oplossing te bedenken is |:(
Je kunt met JS toch ook wel on-the-fly Stylesheets toevoegen?
code:
1
2
3
4
5
6
7
8
9
10
11
<head>
<script>

insite1 = true; // of false, dat kun je serverside wel setten

cssFile = (insite1) ? ('site1.css') : ('site2.css');

document.write("<link type=\"text/css\" rel=\"StyleSheet\" href=\"" + cssFile + "\" />" );

</script>
</head>

[ Voor 25% gewijzigd door Skaah op 20-02-2004 12:28 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Merged met reeds bestaand W&G topics, gaarne niet voor iedere scheet een nieuw topic openen als het gewoon identiek is aan het vorige probleem :)

Professionele website nodig?


Verwijderd

Topicstarter
Van javascript weet ik niet al te veel dus nu vraag ik me af hoe je dit trucje doet voor 2 of meer sites, neem bijvoorbeeld 3 sites.
De true of false waarde diend toch eveneens in javascript weggezet te worden door te controleren wat de top.document.location is. Alleen krijg je dan wel de hele riedel achter het host gedeelte mee.

De oplossing in javascript is wel beter dan dat hele php gedoe. Echt toppie deze oplossing. :)
Pagina: 1