Toon posts:

Van external stylesheet veranderen on the fly

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb voor mijn homepage (http://www.imachination.org) een script geschreven om de pagina on the fly van opmaak te laten veranderen. Eerst had ik hiervoor IE's document.styleSheets[0].href voor gebruikt, nu ben ik bezig om het script cross browser compatible te maken. Heb dus de <link> tag een id meegegeven en de code verandert in document.getElementById('style').href. Dit werkt niet met Firefox 0.8. Iemand een idee om mijn pagina werkend te krijgen onder Firefox?

  • jurri@n
  • Registratie: Maart 2000
  • Laatst online: 27-05 14:08
Ik weet dat het mogelijk is om de tekst (en tags) tussen <DIV> en </DIV> te vervangen met javascript, maar of dat browser compatable is? Anders zou je het zo kunnen doen:

<DIV id="stylesheet"><link rel="stylesheet" src="blaat.css"></div>

En dan dat <link ...> deel herschrijven.

  • Rickets
  • Registratie: Augustus 2001
  • Niet online

Rickets

Finger and a shift

Je moet niet de href veranderen, maar alternate stylesheets opgeven; en dan activeren/uitschakelen.
http://alistapart.com/articles/alternate/ (1e keer dat dit artikel hier gepost wordt..)
jurri@n schreef op 23 februari 2004 @ 15:51:
<DIV id="stylesheet"><link rel="stylesheet" src="blaat.css"></div>

En dan dat <link ...> deel herschrijven.
Bah.

[ Voor 36% gewijzigd door Rickets op 23-02-2004 15:56 ]

If some cunt can fuck something up, that cunt will pick the worst possible time to fucking fuck it up, because that cunt’s a cunt.


Verwijderd

Topicstarter
Rickets schreef op 23 februari 2004 @ 15:53:
Je moet niet de href veranderen, maar alternate stylesheets opgeven; en dan activeren/uitschakelen.
http://alistapart.com/articles/alternate/ (1e keer dat dit artikel hier gepost wordt..)
Bedankt voor de link, misschien komt het nog van pas. Jammer dat ik mijn eigen script nu moet weggooien, was toch een beetje mijn kindje... ;)

  • Billie
  • Registratie: Januari 2003
  • Laatst online: 23-05 07:55
Voor FireFox 0.8 (en alle andere browsers behalve IE) moet je volgens mij het volgende gebruiken. :)


code:
1
<link rel="alternate stylesheet" src="..." title="..." media="...">

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

disjfa

be

Verwijderd schreef op 23 februari 2004 @ 16:08:
[...]
Bedankt voor de link, misschien komt het nog van pas. Jammer dat ik mijn eigen script nu moet weggooien, was toch een beetje mijn kindje... ;)
je hebt een klein scriptje die niet werkt in firefox en opera. dan vraag je hoe dat op te lossen, krijgt het antwoord en wil dat niet :?

Maakt mij verder niet uit hoor :) maar dan moet je wel regelen dat je gebruikers IE only zijn. Verder zou ik het gebruik van dreamweaver minderen en meer zelf schrijven :) leer je meer van :)

disjfa - disj·fa (meneer)
disjfa.nl


Verwijderd

Topicstarter
disjfa schreef op 23 februari 2004 @ 16:12:
Maakt mij verder niet uit hoor :) maar dan moet je wel regelen dat je gebruikers IE only zijn. Verder zou ik het gebruik van dreamweaver minderen en meer zelf schrijven :) leer je meer van :)
Ah, je zag het aan dat wazige MM_reloadPage(init) script waar Dreamweaver de hele tijd mee komt aan zetten! Gebruik bijna altijd het code venster van Dreamweaver. Vind sommige functies van Dreamweaver gewoon ontzettend handig, that's all.

Anyway, vind het wel raar dat Firefox de href van een externe stylesheet niet kan veranderen. Vond mijn manier wel wat hebben...

Verwijderd

code:
1
document.getElementById('blaat').setAttribute('href','value');

[ Voor 30% gewijzigd door Verwijderd op 23-02-2004 16:36 ]


Verwijderd

Topicstarter
Verwijderd schreef op 23 februari 2004 @ 16:35:
code:
1
document.getElementById('blaat').setAttribute('href','value');
Heb het toegepast, maar ook dit werkt wel met IE en niet met Firefox, jammer. Heb het geupload, dus misschien zie je iets wat ik niet zie?

  • Blaise
  • Registratie: Juni 2001
  • Niet online
Dat werkt wel in Opera7/Moz/Firefox/IE (zie ook mijn homepage)

heb je wel id="blaat" in je <link> - CSS specificatie?

[ Voor 22% gewijzigd door Blaise op 24-02-2004 18:46 ]


Verwijderd

Topicstarter
Blaise schreef op 24 februari 2004 @ 18:45:
Dat werkt wel in Opera7/Moz/Firefox/IE (zie ook mijn homepage)

heb je wel id="blaat" in je <link> - CSS specificatie?
Ik heb Opera gedownload en daarmee werkt hij dus wel! Hij moet eigenlijk ook met Firefox werken want hij laadt wel een style (bij mij altijd dezelfde). Ik denk dat de error ergens anders zit. Het javascript console van firefox roept namelijk error "background() is not een function". (Background() is dus zo de beruchte verander stylesheet functie.)

Verwijderd

Is het "Background" of "background"? Groot verschil ;)

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<script language="JavaScript">
function cookie()
{
if (document.cookie.length > 0)
{
begin = document.cookie.indexOf("=")+1;
end = document.cookie.length;
document.forms[0].select.value = document.cookie.substring(begin, end);
background();
}
else
{
document.forms[0].select.value = Math.round(Math.random()*7+1);
background();
}
}

function background()
{
var style = document.forms[0].select.value;
style = 'images/backgrounds/'+style+'.css';
eval("document.getElementById('style').setAttribute('href', '"+style+"')");
var ExpireDate = new Date();
ExpireDate.setTime(ExpireDate.getTime() + (31 * 24 * 3600 * 1000));
document.cookie = "style=" + document.forms[0].select.value + "; expires=" + ExpireDate.toGMTString();
}

...

  <input type="button" name="Button" value="Change!" onClick="background()">


In Mozilla en in Firefox werkt mijn script slechts eenmalig. Opera en IE kunnen hem wel aanpassen via de button. De error die ik van Firefox en Mozilla krijg is "background() is not a function".

[ Voor 21% gewijzigd door Verwijderd op 24-02-2004 21:10 ]


  • Pete_Sampras
  • Registratie: Juli 2001
  • Laatst online: 23-07-2024

Pete_Sampras

Abominabele bavarois

Alternate stylesheets kunnen standaard via een icoontje, linksonderin het browservenster van Firefox worden veranderd, zonder javascript dus.

Voor IE kan je het script rippen van de weblog van de safari developer david hyatt

http://weblogs.mozillazine.org/hyatt/

Old school gamer met een lag en een traan.


  • Justice
  • Registratie: Maart 2001
  • Laatst online: 07-08-2025
En dat laatste scriptje werkt weer niet in Opera blijkbaar. lol

Human Bobby

Pagina: 1