Toon posts:

[javascript]script werk niet in xhtml

Pagina: 1
Acties:

Verwijderd

Topicstarter
Onderstaand script gebruik ik om m'n menu (in aparte layer, juiste css-code) altijd in beeld te houden.

Nu werkt dit prima, maar zodra ik XHTML 1.0 Transitional//EN als doctype opgeef, doet ie nix meer. Hij springt dan alleen bij 't laden naar de beginpositie.

dan kan ik wel html4.01 als doctype opgeven, maar in xhtml moet ie toch ook werken :?

menu.js:
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
function setVariables() {
if (document.layers) {
v=".top=";
dS="document.";
sD="";
y="window.pageYOffset";
}
else if (document.all){
v=".pixelTop=";
dS="";
sD=".style";
y="document.body.scrollTop";
}
else if (document.getElementById){
y="window.pageYOffset";
}
}
function checkLocation() {
object="menu";
yy=eval(y);
if (document.getElementById)
document.getElementById("menu").style.top=yy+20
else
eval(dS+object+sD+v+yy)
setTimeout("checkLocation()",10);
}


linken in de head:
code:
1
<script src="menu.js" type="text/javascript"></script>


en de body-tag:
PHP:
1
echo"<body onload=\"setVariables();checkLocation()\">\n";


ps. mocht dit script je bekend voorkomen, tis geripped van javascriptkit.com ;)

  • André
  • Registratie: Maart 2002
  • Laatst online: 01-09 14:07

André

Analytics dude

Er zijn in xhtml een paar tags deprecated geworden, en dus kun je die ook niet meer aanroepen met js. Welke tags dat zijn kun je vinden op www.w3.org

  • FireArrow
  • Registratie: Mei 2002
  • Laatst online: 25-05-2022
Tip: gebruik alleen bijv: HTML en Javascript door elkaar... Somminge scripts werken ook niet goed met elkaar samen.

Verwijderd

Topicstarter
Yogho: Geld dat ook voor javascript dan :?
Die code die in dit script staat ziet er vrij standaard uit, maar verder is javascript onbekend voor mij, dus ik zal niet weten wat er anders zou moeten...

Verder las ik net hier ergens op 't forum dat je javascript als aparte file in xhtml moet gebruiken, maar dat doe ik al...

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Haal je pagina eens door de validator

Intentionally left blank


  • RM-rf
  • Registratie: September 2000
  • Nu online

RM-rf

1 2 3 4 5 7 6 8 9

probeer dit script van ppk:
http://www.xs4all.nl/~ppk/js/fixedmenu.html

hij vermeld ook een probleem met explorer 6 en de DOCTYPE
meer daarover hier:
http://www.xs4all.nl/~ppk/js/doctypes.html
en
http://www.xs4all.nl/~ppk/js/winprop.html

de truc is document.body te vervangen door document.documentElement

ppk is een essentiele bookmark voor javascripters

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • André
  • Registratie: Maart 2002
  • Laatst online: 01-09 14:07

André

Analytics dude

FireArrow schreef op 15 augustus 2002 @ 22:18:
Tip: gebruik alleen bijv: HTML en Javascript door elkaar... Somminge scripts werken ook niet goed met elkaar samen.
Wat bedoel je hier? Welke scripts werken niet goed samen dan?

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

RM-rf schreef op 16 augustus 2002 @ 00:39:
probeer dit script van ppk:
http://www.xs4all.nl/~ppk/js/fixedmenu.html

hij vermeld ook een probleem met explorer 6 en de DOCTYPE
meer daarover hier:
http://www.xs4all.nl/~ppk/js/doctypes.html
en
http://www.xs4all.nl/~ppk/js/winprop.html

de truc is document.body te vervangen door document.documentElement

ppk is een essentiele bookmark voor javascripters
Of wellicht ook hier de link uit de DT halen (is volgens mij ook niet verplicht in een DT).
Yogho schreef op 16 augustus 2002 @ 08:02:
[...]

Wat bedoel je hier? Welke scripts werken niet goed samen dan?
Waarschijnlijk bedoelt hij dat als je meerdere scriptjes ript van www.hotscripts.com en die toevoegd zonder te weten wat die scriptjes nu precies doen, je wel eens problemen kunt krijgen.
Scriptje 1 attached bijvoorbeeld een functie aan de onLoad, en die wordt overschreven door een functie van scriptje 2 etcetera.
Mijn advies is altijd: gebruik alleen technieken die je zelf ook begrijpt ;)

Intentionally left blank


Verwijderd

Moest je ook niet je script tussen CDATA comments zetten met XHTML ?
code:
1
2
3
4
5
<script type="text/javascript">
// <![CDATA[

// ]]>
</script>

Verwijderd

Verwijderd schreef op 16 augustus 2002 @ 09:37:
Moest je ook niet je script tussen CDATA comments zetten met XHTML ?
code:
1
2
3
4
5
<script type="text/javascript">
// <![CDATA[

// ]]>
</script>

Dat is zo, maar het wordt nog niet goed ondersteund door bijvoorbeeld Internet Explorer, dus dan kunt je het wel gaan toepassen, maar het werkt gewoon niet in 90% van de gevallen. Mijn advies is dan om je scripts niet in hetzelfde document te zetten, maar in apart script bestand. Bovendien moet je die comment slashes gewoon weglaten.

Verwijderd

ah ok! thnx :)

Verwijderd

Topicstarter
zal eens naar dat script van ppk kijken.
heb 't script door de validator gehaald, maar daar gaf ie "no errors" schiet ook niet op dus...
En zoals al te zien is, 't script staat al in een aparte file, dus CDATA is dan niet nodig toch :?

Kan wel weer ffies vooruit :)

Verwijderd

Topicstarter
de truc is document.body te vervangen door document.documentElement
Heej zo werkt ie!!
Denk toch da'k 't script van ppk erin zet, 't menu-scrollen verloopt daar niet zo schokkerig, en 't is minder cpubelasting :)

nog even over de opmerking van crisp:
Ik mag dan wel niet veel van javascript snappen(niet proggen kunnen), maar voordat ik zo'n scriptje invoeg, loop ik wel altijd de source even door (als tie er niet al te ingewikkeld uitziet dan ;)) Zo heb ik ook html/php/sql geleerd...

[ Voor 0% gewijzigd door Verwijderd op 16-08-2002 23:12 . Reden: add ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op 16 augustus 2002 @ 22:49:
[...]

Heej zo werkt ie!!
Denk toch da'k 't script van ppk erin zet, 't menu-scrollen verloopt daar niet zo schokkerig, en 't is minder cpubelasting :)

nog even over de opmerking van crisp:
Ik mag dan wel niet veel van javascript snappen(niet proggen kunnen), maar voordat ik zo'n scriptje invoeg, loop ik wel altijd de source even door (als tie er niet al te ingewikkeld uitziet dan ;)) Zo heb ik ook html/php/sql geleerd...
Link uit de DTD halen werkte niet, of heb je dat niet geprobeerd?

Mijn opmerking sloeg ook niet op jou hoor (hoewel het jammer is dat in dit script d.all ook weer voorafgaat aan d.getElementById); veel zien en doen is inderdaad ook vaak de beste manier om het te leren (en door schade en schande) :)

Intentionally left blank

Pagina: 1