[JS] IE herkend string niet als string FF wel.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • foaly
  • Registratie: Juni 2005
  • Laatst online: 16-08 16:20
Ik gebruik op een internetpagina de volgende regel:

code:
1
2
3
--------------------------------------------------------------------------------
taginp.setAttribute('name','bestanden'+count_files+'');
--------------------------------------------------------------------------------



In Firefox werkt dit echter in IE krijg ik een foutmelding.
Volgens mij ligt het probleem in het volgende gedeelte:
code:
1
2
3
--------------------------------------------------------------------------------
'bestanden'+count_files+''
--------------------------------------------------------------------------------


Blijkbaar herkend hij dat gedeelte niet als tekst en geeft daarom de melding:
"Deze eigenschap of methode wordt niet ondersteund door dit object"
Iemand een idee hoe dit op te lossen is?

Acties:
  • 0 Henk 'm!

  • Juup
  • Registratie: Februari 2000
  • Niet online
Mogen we een iets groter codefragment? De error betekent waarschijnlijk dat taginp geen setAttribute methode heeft.

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Het probleem zit 'm in het feit dat IE gewoonweg slechte support heeft voor setAttribute(), dit werkt doorgaans wel gewoon* (in alle browsers):
JavaScript:
1
taginp.name = 'bestanden'+count_files;

* oudere versies IE supporten echter het dynamisch aanpassen van name-attributes helemaal niet...

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • foaly
  • Registratie: Juni 2005
  • Laatst online: 16-08 16:20
crisp schreef op zondag 10 augustus 2008 @ 17:36:
Het probleem zit 'm in het feit dat IE gewoonweg slechte support heeft voor setAttribute(), dit werkt doorgaans wel gewoon* (in alle browsers):
JavaScript:
1
taginp.name = 'bestanden'+count_files;

* oudere versies IE supporten echter het dynamisch aanpassen van name-attributes helemaal niet...
Dat werkt ook niet...
Hier meer code, hoop dat je er wat mee kan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function bestanden() {
    if (max_files == 0 || max_files > count_files) {
        var holder = document.getElementById('bestanden').getElementsByTagName('tr')[0].parentNode;
        var taginp = document.createElement('input');
        taginp.setAttribute('type','file');
        taginp.setAttribute('name','bestanden'+count_files+'');
        var tagtr = document.createElement('tr');
        var tagtd = document.createElement('td');
        var tagspan = document.createElement('span');
        tagspan.style.cursor = 'pointer';
        tagspan.onclick = function() {
            this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);   
            count_files--;       
        }
        tagspan.appendChild(document.createTextNode(' Delete'));
        tagtd.appendChild(taginp);
        tagtd.appendChild(tagspan);
        tagtr.appendChild(tagtd);
        holder.appendChild(tagtr);
        count_files++;
    }
}

[ Voor 53% gewijzigd door foaly op 10-08-2008 19:38 ]


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Ueberranzige IE-workaround:
JavaScript:
1
var taginp = document.createElement('<input type=file name=bestanden' + count_files + '>');

uiteraard wel een soort van branching toepassen aangezien dit natuurlijk niet werkt in echte browsers ;)

Intentionally left blank