[JS] XUL permission errors bij een alert() of focus()

Pagina: 1
Acties:

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
beste mensen, ik was bezig met een javascriptje dat een form moet gaan checken.
opzich werkt ie, maar als ik in me js console loer dan zie ik nogal wat ranzige errors.

dis me code:
Java:
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
function check(form)
{
    var checksucces = true;
    var focused = false;      //because we get permission errors for XUL-Elements when focussing more then once
    
    if (form.elements['dbhostname'].value == '') {
        form.elements['dbhostname'].style.backgroundColor = '#FFDDDD';
        form.elements['dbhostname'].focus();
        focused = true;
        checksucces = false;
    } else {
        form.elements['dbhostname'].style.backgroundColor = '#FFFFFF';
    }
    if (form.elements['dbusername'].value == '') {
        form.elements['dbusername'].style.backgroundColor = '#FFDDDD';
        if (!focused) form.elements['dbusername'].focus();
        checksucces = false;
    } else {
        form.elements['dbusername'].style.backgroundColor = '#FFFFFF';
    }
    
    if (!checksucces) {
        alert('One or more required fields are empty!');
        return false;
    }
    return true;
}


en dis zo'n error:
Error: [Exception... "'Permission denied to get property XULElement.selectedIndex' when calling method: [nsIAutoCompletePopup::selectedIndex]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)" location: "JS frame :: http://xxx/functions.js :: check :: line 23" data: no]
Source File: http://xxx/install/functions.js
Line: 23
zoals je kan zien heb ik bovenin me code al een var aangemaakt die zorgt dat ik maar 1x focus() kan doen in die functie, maar toen kwam ik diezelfde error ook tegen toen ik een alert wilde doen.
nu wil ik die echt laten zien, maar zou niet weten hoe.. (zonder error dan)


edit:
na wat testen blijkt dat het alleen in FF voorkomt

[ Voor 49% gewijzigd door BasieP op 21-11-2005 15:02 ]

This message was sent on 100% recyclable electrons.


  • Harm
  • Registratie: Mei 2002
  • Niet online
Welke versie van Firefox gebruik je dan? Dit is namelijk geen error die jij veroorzaakt, maar een error die Firefox veroorzaakt en niet in die vorm zou mogen voorkomen. Ergo: het lijkt een bug in Firefox.

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
Harm schreef op maandag 21 november 2005 @ 15:22:
Welke versie van Firefox gebruik je dan? Dit is namelijk geen error die jij veroorzaakt, maar een error die Firefox veroorzaakt en niet in die vorm zou mogen voorkomen. Ergo: het lijkt een bug in Firefox.
ik gebruik 1.07, en heb geen extenties die iets aan JS's zouden aanpassen

[ Voor 9% gewijzigd door BasieP op 21-11-2005 15:52 ]

This message was sent on 100% recyclable electrons.


  • Harm
  • Registratie: Mei 2002
  • Niet online
Kan je dan eens een testpagina online zetten met dit stuk Javascript? Dan test ik ook even wat ik te zien krijg.

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
http://basiep.dyndns.org/forum/install/

voila, niet echt een test pagina, maar er staat weinig overbodigheid in, dus kan er wel voor gebruikt worden

This message was sent on 100% recyclable electrons.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 11:56

crisp

Devver

Pixelated

Vreemde foutmelding idd; ook in Ff1.5RC2 krijg ik 'm.
Wat je wellicht zou kunnen proberen is het volgende:
JavaScript:
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
function check(form)
{
    var checksucces = true;
    var focus_on = false;
    
    if (form.elements['dbhostname'].value == '') {
        form.elements['dbhostname'].style.backgroundColor = '#FFDDDD';
        focus_on = form.elements['dbhostname'];
        checksucces = false;
    } else {
        form.elements['dbhostname'].style.backgroundColor = '#FFFFFF';
    }
    if (form.elements['dbusername'].value == '') {
        form.elements['dbusername'].style.backgroundColor = '#FFDDDD';
        if (!focus_on) focus_on = form.elements['dbusername'];
        checksucces = false;
    } else {
        form.elements['dbusername'].style.backgroundColor = '#FFFFFF';
    }
    
    if (!checksucces) {
        alert('One or more required fields are empty!');
        if (focus_on) focus_on.focus();
        return false;
    }
    return true;
}

Intentionally left blank


  • rjeggens
  • Registratie: Juni 2000
  • Laatst online: 06-02-2025
Heeft iemand dit al opgelost? Bovenstaande stuk code deed het voor mij niet iig..

Naast focus() heeft ook select() er last van.

Ik heb de Firefox instellingen aangepast dat javascript alles mag (dit om uit te sluiten dat het daar aan zou liggen, hoewel de opties niet dusdanig waren dat ik er veel van verwachtte).

Een search op Google heeft me iig niet veel verder gebracht.

Verwijderd

Ik moet zeggen dat ik de fout niet krijg, zowel met 1.5 als een recente nightly niet.

  • rjeggens
  • Registratie: Juni 2000
  • Laatst online: 06-02-2025
Ik heb vanmiddag een verse Firefox geinstalleerd (een engelse deze keer, om met de fout in Google te zoeken) en die komt keurig op de proppen met die fout. Misschien mijn stukje code ook even posten. Staat op laptop, doe ik morgenvroeg

  • Swaptor
  • Registratie: Mei 2003
  • Laatst online: 16-02 22:21

Swaptor

Java Apprentice

FF 1.5 met de Gecko 20051111 engine geeft bij mij ook geen fout, sorry.

Ontdek mij!
Proud NGS member
Stats-mod & forum-dude


  • rjeggens
  • Registratie: Juni 2000
  • Laatst online: 06-02-2025
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function setFocus() {
    var obj;
    
    if(row<0) 
        row = 0;
    if(col<0)
        col = 0;
    id = 'uren' + row * 100 + col;
    try {
        obj = document.getElementById(id);
        obj.focus();
        obj.select();

    }
    catch(e)  { 
        row = oldrow; 
        col = oldcol;
    }; 
    return true;      
}


Deze blijft bij mij een fout geven. Ik weet dat de id berekening een beetje vreemd is, maar die is wel consequent vreemd gedaan en daar zit de fout dus niet.

Ik zal ff uitleggen ook wat dit stukje code zou moeten doen. Ik heb een matrix van textboxen. Hierdoor wil ik met de pijltjestoetsten kunnen bewegen. Dit werkt op zich wel, maar die foutmelding blijft komen, en de selectie van de inhoud gebeurt niet (waardoor invoerfouten gemaakt worden)

[ Voor 26% gewijzigd door rjeggens op 14-12-2005 13:13 . Reden: Extra uitleg voor de code. ]

Pagina: 1