[HTML] meta- en script-tag conflict

Pagina: 1
Acties:

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

X-Lars

Just GoT it.

Topicstarter
HTML:
1
2
<meta name="language" content="nl">
<script type="text/javascript" src="javascript/postcode.js"></script>


Hoe kunnen deze twee regels ooit in conflict met elkaar zijn? Het script werkt alleen als deze meta-tag weg is. De andere meta-tags zijn niet van invloed.

Javascript error (alleen in IE, FF Javascript Console zegt niets):
code:
1
2
Object doesn't support this property or method
Code: 0

:/

  • Exigence
  • Registratie: Juli 2001
  • Laatst online: 00:32

Exigence

dnkroz

Ik kan het hier niet reproduceren igg.

Probeer dit eens:
HTML:
1
<meta name="language" content="nl" />

Verwijderd

echt geen gekke dingen in je js? (ie: is dit een lege js?) wat als je ze andersom zet?

@ hierboven: niet bij html

[ Voor 14% gewijzigd door Verwijderd op 01-11-2004 22:05 ]


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

X-Lars

Just GoT it.

Topicstarter
Doctype:
HTML:
1
2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">


En de javascript is zo'n standaard postcode-zoekding van locatienet. Zitten geen rare dingen in, zoveel snap ik er wel van. Andere meta-tags leveren dus geen problemen op.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

In IE wordt alles met een name-attribuut (of ID) in de global namespace gegooid; blijkbaar overschrijft hij daarmee een JS object met de naam language ;)

edit: gek genoeg kan ik het niet snel reproduceren, maar het lijkt mij wel een verklaring:
HTML:
1
2
3
4
<meta name="language" content="nl">
<script type="text/javascript">
alert(language);
</script>

geeft in IE [object] en in FF "language is not defined"

waarom zet je niet gewoon lang="nl" in je html-tag?

[ Voor 60% gewijzigd door crisp op 01-11-2004 22:50 ]

Intentionally left blank


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

X-Lars

Just GoT it.

Topicstarter
Klopt, er wordt een var 'language' gebruikt in het script. Ik had dat nog wel roughly gecheckt, maar wist sowieso niet dat dat allemaal global ging (overigens geldt dit dan dus ook voor FF). Weer wat geleerd, tnx crisp :)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

misschien in FF 1.0 wel ja, omdat die *&$&^@^%^@ mozilla-eikels het in hun kop hebben gehaald daar toch op een of andere manier document.all support in te bouwen :(

Intentionally left blank


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

X-Lars

Just GoT it.

Topicstarter
In FF0.9.2 idem.

For what it's worth: Netscape 4 (Mozilla) had het document.layers model, IE4 het document.all model.

Nou weet ik helemaal niet de precieze betekenis overal van, maar blijkbaar zijn ze bij Mozilla weer terug bij af (qua non-standards compliantness)?

Mmm... toch binnenkort maar even checken hoe dat nou precies zit met DOM1 en ECMA(Script). En welke browser wat ondersteunt. :Y)

offtopic:
Word beetje geïndoctrineerd door Zeldman's Designing with web standards momenteel, ben er nu in aan het lezen.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

tsja, dan vraag ik me toch af wat er in postcode.js met de var language wordt gedaan; zoals ik al eerder zei: ik kan het niet zo eventjes reproduceren op een manier waarvan ik dacht dat het wel een error zou moeten opleveren.

en verder: document.layers is dood en begraven met NS4, document.all zou dat ook moeten zijn omdat vanaf versie 5 IE gewoon met DOM overweg kan. Het mozilla-team heeft echter besloten om toch qua basis d.all support in te bouwen om zo het aantal websites dat problemen gaf (lees: websites gebouwd door nono's of niet onderhouden de laatste 10 jaar) te verkleinen.

Intentionally left blank


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

X-Lars

Just GoT it.

Topicstarter
JavaScript:
1
2
3
function RouteWindow(frm) {
  language = frm.language.value;
}

HTML:
1
2
3
<form onSubmit="return RouteWindow(this)">
  <input type="hidden" name="language" value="Dutch">
</form>


Edit: er zit dus ook nog een name="language" in :+

[ Voor 28% gewijzigd door X-Lars op 02-11-2004 00:06 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

X-Lars schreef op 02 november 2004 @ 00:05:
JavaScript:
1
2
3
function RouteWindow(frm) {
  language = frm.language.value;
}

HTML:
1
2
3
<form onSubmit="return RouteWindow(this)">
  <input type="hidden" name="language" value="Dutch">
</form>


Edit: er zit dus ook nog een name="language" in :+
en dan wordt het een collection :)
ja, dan ga je de mist in :)

Hoewel strict gezien het input-element alleen via het form-element benaderbaar zou moeten zijn...

In FF 0.9.3 gaat dit bij mij gewoon goed overigens

[ Voor 16% gewijzigd door crisp op 02-11-2004 00:10 ]

Intentionally left blank


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

disjfa

be

crisp schreef op 02 november 2004 @ 00:07:
[...]
Hoewel strict gezien het input-element alleen via het form-element benaderbaar zou moeten zijn...
frm.elements["language"].value zou wel kunnen.

Maar waar returned het form zijn waarde naar :? Ik bedoel als ik een form was en als ik gesubmit werd en mij een return "dutch" zou worden gegeven zou ik gaan denken wat men mij zou bedoelen.... Maar dan ben ik ook geen formulier :) Maar ik volg hem nog niet.

disjfa - disj·fa (meneer)
disjfa.nl


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

de functie geeft idd geen returnvalue, dus dat is inderdaad een vreemde constructie

maar zoals ik al in mijn edit hierboven zij: in FF 0.9.3 gaat dit gewoon goed..

Intentionally left blank


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

X-Lars

Just GoT it.

Topicstarter
crisp schreef op 02 november 2004 @ 00:12:
[...]
maar zoals ik al in mijn edit hierboven zij: in FF 0.9.3 gaat dit gewoon goed..
Wel met die meta-tag erbij?

Ik doe even die input veranderen in name="lang" (uiteraard ook in js: lang = frm.language.value). Nu weet ik tenminste zeker dat het aan niet dat input-element lag :)

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

X-Lars

Just GoT it.

Topicstarter
disjfa schreef op 02 november 2004 @ 00:10:
[...]

frm.elements["language"].value zou wel kunnen.

Maar waar returned het form zijn waarde naar :? Ik bedoel als ik een form was en als ik gesubmit werd en mij een return "dutch" zou worden gegeven zou ik gaan denken wat men mij zou bedoelen.... Maar dan ben ik ook geen formulier :) Maar ik volg hem nog niet.
De functie opent ook een nieuw window waarin die waarden uit dat form gebruikt worden :)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

X-Lars schreef op 02 november 2004 @ 00:18:
[...]

Wel met die meta-tag erbij?

Ik doe even die input veranderen in name="lang" (uiteraard ook in js: lang = frm.language.value). Nu weet ik tenminste zeker dat het aan niet dat input-element lag :)
ja, met meta-tag erbij. FF 1.0 moet ik nog eens installeren hier..

maar anyway; de oorzaak is dus duidelijk :)

[ Voor 6% gewijzigd door crisp op 02-11-2004 00:22 ]

Intentionally left blank

Pagina: 1