Toon posts:

[JS/FF] Illegal operation on WrappedNative prototype object

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een stuk script wat gebruik maakt van .innerHTML, dit geeft in Firefox het volgende probleem:

uncaught exception: [Exception... "Illegal operation on WrappedNative prototype object" nsresult: "0x8057000c (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)"

Nu geeft google een hoop hits over dit probleem maar vooral voor versie 1.0.3. Ik gebruik zelf 1.0.7.
Ik kan ook geen daadwerkelijke workaround voor vinden hoe je dit kunt oplossen. Iemand een idee ?

De pagina in kwestie staat hier.

Er zit een calculatie in die na een onchange (op verschillende pulldowns) word uitgevoerd, de uitkomst word in een divje gegooid, althans dat is de bedoeling. In IE6 gaat dit goed.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

De boosdoener is dit:
JavaScript:
1
el = document.getElementById;

Als je dat zo graag wilt verkorten, maak er dan gewoon een functie van:
JavaScript:
1
2
3
4
function el(id)
{
    return document.getElementById(id);
}

overigens is het m.i. wel een bug in Firefox

beter is echter om gewoon vanuit je event-handlers referenties mee te geven. Ik zou ook gewoon gebruik maken van de elements-collectie van je form, dat is sneller dan lookups in je hele document.

Grappig overigens dat je wel moeite doet om het XHTML-valid te krijgen en dan vervolgens een property gebruikt (innerHTML) die in XHTML eigenlijk niet gebruikt kan worden - het is dat je het als HTML serveert anders zal je script niet in alle browsers werken ;)

[ Voor 5% gewijzigd door crisp op 09-01-2006 11:48 ]

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op maandag 09 januari 2006 @ 11:47:
Als je dat zo graag wilt verkorten, maak er dan gewoon een functie van:
ik wil het werkend krijgen, niet zozeer korter. ;)
Ik tast nog in het duister omtrent deze bug...
beter is echter om gewoon vanuit je event-handlers referenties mee te geven. Ik zou ook gewoon gebruik maken van de elements-collectie van je form, dat is sneller dan lookups in je hele document.
Het is een draak van een formulier en is idd het overwegen waard.
Grappig overigens dat je wel moeite doet om het XHTML-valid te krijgen en dan vervolgens een property gebruikt (innerHTML) die in XHTML eigenlijk niet gebruikt kan worden - het is dat je het als HTML serveert anders zal je script niet in alle browsers werken ;)
XHTML is voor mij geen moeite maar standaard werk. ;)
Maar ik wist niet dat je geen innerHTML mocht gebruiken icm XHTML, dit word toch verzorgd door JS ?

[ Voor 3% gewijzigd door Verwijderd op 09-01-2006 12:31 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op maandag 09 januari 2006 @ 12:30:
[...]

ik wil het werkend krijgen, niet zozeer korter. ;)
Ik tast nog in het duister omtrent deze bug...
Het feit dat je document.getElementById aan een variabele (die je ook niet eens declareerd - dus wordt het een global) toekent doet mij toch wel vermoeden dat het een poging is tot 'verkorten'. De functie die ik heb gepost is dan een alternatief waarmee je hetzelfde bereikt en die in Firefox geen problemen oplevert.
XHTML is voor mij geen moeite maar standaard werk. ;)
Maar ik wist niet dat je geen innerHTML mocht gebruiken icm XHTML, dit word toch verzorgd door JS ?
XHTML voor websites is bijna altijd nutteloos; HTML is identiek en praktischer dankzij error-correction.
Het probleem met innerHTML (en ook document.write) is dat op bepaalde momenten dit een mall-formed document op kan leveren - iets wat in een XML-omgeving dus uit den boze is.
Jij verstuurd je XHTML als text/html, dus kan je net zo goed een HTML DTD gebruiken ;)

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op maandag 09 januari 2006 @ 14:08:
[...]
Het feit dat je document.getElementById aan een variabele (die je ook niet eens declareerd - dus wordt het een global) toekent doet mij toch wel vermoeden dat het een poging is tot 'verkorten'. De functie die ik heb gepost is dan een alternatief waarmee je hetzelfde bereikt en die in Firefox geen problemen oplevert.
Ik had het er al ingehangen, maar hij werkte nog niet....bleek dat ie wat id's mistte. Nu werkt het idd. thnx