Toon posts:

[javascript] getElementsByTagName() werkt niet in Firefox

Pagina: 1
Acties:

Verwijderd

Topicstarter
het volgende:

- 1pagina, met formulier en daarin een dropdown-boxje
- 1 extern javascript.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Menu script
var SearchSorteerSubmit;
SearchSorteerSubmit = function() {
    var selectObjects = document.getElementsByTagName("select");
    if (selectObjects != null){
        alert(selectObjects.length);
        for (var i=0; i<selectObjects.length; i++) {
            if (selectObjects[i].name == 'ordering'){
                selectObjects[i].onchange=function() {
                    document.searchform.submit();
                }
            }
        }
    }
}
if (window.attachEvent) { // check voor IE
    window.attachEvent("onload", SearchSorteerSubmit);
} else { // onload in FF
    window.onload = SearchSorteerSubmit();
}

Het script wordt aangeroepen vanaf de pagina, de window.onload zorgt er voor dat de functie uitgevoerd wordt. In IE gaat alles goed, maar in FireFox worden er helemaal geen elementen gevonden met getElementsByTagName, de functie getElementsById geeft niets terug...
als ik het volgende probeer:
code:
1
var selectObjects = document.searchform.getElementsByTagName("select");

krijg ik de volgende fout: "document.forms.searchform has no properties".
Wederom werkt het wel in IE...

Ik heb al gegoogled maar heb nog geen alternatief gevonden om het betreffende probleem op te lossen...

[ Voor 4% gewijzigd door Verwijderd op 11-06-2005 17:07 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

getElementsByTagName zou gewoon in FF moeten werken dus waarschijnlijk ligt het ergens anders aan. Aan de foutmelding te zien is er een typefout oid gemaakt?

En window.onload = SearchSorteerSubmit; werkt in beide browsers, dus de laatste 5 regels kun je vervangen ;)

document.forms.searchform kun je vervangen door document.forms["searchform"]

En getElementsById werkt niet idd, getElementById weer wel ;)

Heb je misschien iets online staan zodat we mee kunnen kijken?

[ Voor 9% gewijzigd door André op 11-06-2005 17:11 ]


Verwijderd

Topicstarter
http://www.jpsheusden.nl

Daar ff bij de zoekfunctie school als zoekterm, dan krijg je een resultaat pagina te zien.
De dropdown om te sorteren, daar gaat het om.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 07:43

crisp

Devver

Pixelated

JavaScript:
1
window.onload = SearchSorteerSubmit;

dus zonder de (); werkt in alle browsers.

Verder zitten er nog een paar validatiefoutjes in, en denk ik dat je hier en daar beter gebruik kan maken van het 'this' keyword ;)

Je markup is overigens een beetje een div-soup, en dit is wel heel erg ranzig semantisch en qua toegankelijkheid gezien:
HTML:
1
<div class="OkButton" onmouseover="this.className='OkButtonHover';" onmouseout="this.className='OkButton';" onClick="document.menusearch.submit();"><a href="#"> </a></div>


oh ja:

HTML:
1
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" />

maar je HTTP headers zeggen iets heel anders...

[ Voor 63% gewijzigd door crisp op 11-06-2005 18:46 ]

Intentionally left blank


Verwijderd

Topicstarter
Klopt nu werkt de submit wel! Maar waar kan ik die validatiefoutjes checken? Online javascript validator?

Wat betreft dat van die DIV-knop, dat was de enige oplossing om in FF een mooie knop te krijgen. En dan die link daarin, die zorgt er weer voor dat er een handje verschijnt als je muis eroverheen gaat...
(k*t gedoe ook met die verschillende browsers, en dan is dit alleen nog maar voor Opera, IE 6 en FF)

lol @ div-soup = XHTML(tenminste..dat was de bedoeling), Mambo weet dat af en toe ook goed te vergallen.. das het nadeel van een CMS weer natuurlijk.

Maar hoezo zeggen mn headers iets anders?!

[ Voor 9% gewijzigd door Verwijderd op 11-06-2005 18:56 . Reden: (wat toegevoegd) ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Dit is een online validator: http://validator.w3.org (Voor (X)HTML en niet voor JS).

En je headers zeggen:
Date: Sat, 11 Jun 2005 16:58:09 GMT
Server: Apache/2.0.51 (Fedora)
X-Powered-By: PHP/4.3.10
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Sat, 11 Jun 2005 16:58:09 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 5028
Connection: close
Content-Type: text/html

200 OK
En daar mis ik een charset, en ik zie html ipv xhtml ;)
Let er wel op dat IE geen XHTML ondersteund, beter is het om dan HTML 4.01 te gebruiken.

En het handje kun je ook krijgen door op de knop een cursor:pointer; en een cursor:hand; te zetten in de style.

[ Voor 13% gewijzigd door André op 11-06-2005 19:01 ]


  • Amras
  • Registratie: Januari 2003
  • Laatst online: 01-10-2025
Verwijderd schreef op zaterdag 11 juni 2005 @ 18:53:
Klopt nu werkt de submit wel! Maar waar kan ik die validatiefoutjes checken? Online javascript validator?

Wat betreft dat van die DIV-knop, dat was de enige oplossing om in FF een mooie knop te krijgen. En dan die link daarin, die zorgt er weer voor dat er een handje verschijnt als je muis eroverheen gaat...
(k*t gedoe ook met die verschillende browsers, en dan is dit alleen nog maar voor Opera, IE 6 en FF)

lol @ div-soup = XHTML(tenminste..dat was de bedoeling), Mambo weet dat af en toe ook goed te vergallen.. das het nadeel van een CMS weer natuurlijk.

Maar hoezo zeggen mn headers iets anders?!
Niet dat ik het een logische keuze vind dat je een div als button 'misbruikt', maar een handje kun je ook zo laten verschijnen:
Cascading Stylesheet:
1
2
3
.someClass {
    cursor: pointer;
}

edit:
Uhmm ja... wat Andre dus net aan z'n post toevoegt... :Y)

[ Voor 5% gewijzigd door Amras op 11-06-2005 19:04 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 07:43

crisp

Devver

Pixelated

Verwijderd schreef op zaterdag 11 juni 2005 @ 18:53:
Klopt nu werkt de submit wel! Maar waar kan ik die validatiefoutjes checken? Online javascript validator?
Niet in je JS, maar in je markup zelf: http://validator.w3.org
Wat betreft dat van die DIV-knop, dat was de enige oplossing om in FF een mooie knop te krijgen. En dan die link daarin, die zorgt er weer voor dat er een handje verschijnt als je muis eroverheen gaat...
(k*t gedoe ook met die verschillende browsers, en dan is dit alleen nog maar voor Opera, IE 6 en FF)
Wat is er mis met een <input type="image">? Dat mouseover effectje is absoluut onnodig; toegankelijkheid lijkt me belangrijker dan afhankelijkheid van JS.
Een handje moet je niet forceren door een anchor te misbruiken; CSS kent gewoon een cursor property ;)
lol @ div-soup = XHTML(tenminste..dat was de bedoeling), Mambo weet dat af en toe ook goed te vergallen.. das het nadeel van een CMS weer natuurlijk.
Dan heb je het niet goed begrepen. XHTML heeft niets te maken met het gemisbruiken van DIV's. Je moet de elementen gebruiken die iets zeggen over je content: headers, paragrafen, lists. Dat style je vervolgens met CSS. Dat is in HTML zo, en in XHTML ook.
Maar hoezo zeggen mn headers iets anders?!
Je verstuurd je pagina met een text/html content-type, dus in feite is het HTML voor de ontvanger, daar doet je DTD en META-tag niets aan.

Intentionally left blank


Verwijderd

Topicstarter
Thx for comments!

Gefixt:
- header
- DIV knopje (1 knopje is alleen nog aant pixelfucken... maar maandag is er weer een dag:P)
- blijft nu nog 1 error over in de XHTML validator, die zit in de content en wordt door Mambo gemaakt, dus daar doe ik niets aan helaas. Hooguit een class aanmaken die rechtsuitlijnt...

[ Voor 15% gewijzigd door Verwijderd op 11-06-2005 19:47 ]

Pagina: 1