[JS] veranderen file input value: security error in Mozilla

Pagina: 1
Acties:

  • whitey-d
  • Registratie: April 2000
  • Laatst online: 13-05 18:09
Ik heb een simpel HTML-formuliertje met een INPUT TYPE=FILE erin, voor het uploaden van een attachment bij een in te voeren bericht. Vanwege omstandigheden (volgens mij is het niet nodig daar een heel verhaal aan te besteden) wil ik de value van dat input-veld kunnen resetten.

Dus stel: je hebt een bestand geselecteerd, locatie staat in het inputveld, en door een druk op de knop kun je de locatie resetten waardoor het inputveld weer leeg is.

Even de volgende voorbeeldcode:
code:
1
2
3
4
<form id="blaat" method="post" action="pagina.asp"
  enctype="multipart/form-data">
  <input type="file" name="attachment1">
</form>


En het javascript-commando wat ik erop los wil laten:
code:
1
document.forms["blaat"].elements["attachment1"].value = ""


Dit werkt in IE6 perfect. Maar nu het probleem: ik krijg zowel in Mozilla als in Netscape 7 een flinke Javascript-error om mijn oren:
Error: uncaught exception: [Exception... "Security error" code: "1000" nsresult: "0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)" ]
Ik heb even wat research gedaan aangaande deze kennelijke overschrijding van Mozilla's security-beleid, en ik kan maar één optie vinden:
code:
1
netscape.security.PrivilegeManager.enablePrivilege('UniversalFileRead');

...zou ervoor moeten zorgen dat het wel kan, maar bij deze melding geeft hij in Mozilla en Netscape aan dat het privilege niet wordt verleent.

Betekent het nu dat ik voor altijd van het File-inputveld moet afblijven als de gebruiker deze heeft ingevuld (met Javascript tenminste)? Of is er een oplossing? Ik vind het eigenlijk een maf probleem.

“Advertising says to people, 'Here's what we've got. Here's what it will do for you. Here's how to get it.'”


  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 26-05 11:06

DizzyWeb

Ondertiteld

Correct. Alleen gebruiker zelf kan een file input veld aanpassen, een script kan dat niet.
Maar goed ook, scripts kunnen automatisch submitten, dan kan je doodsimpel bestanden van een andere pc af halen.

  • whitey-d
  • Registratie: April 2000
  • Laatst online: 13-05 18:09
:( Maar waarom kan het in IE6 (nog) wel dan?

“Advertising says to people, 'Here's what we've got. Here's what it will do for you. Here's how to get it.'”


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 19:49

RM-rf

1 2 3 4 5 7 6 8 9

file upload elementen hebben een gerestricteerde write-privilege, ik kan me echter wel voorstellen dat het mogelijk is om de node an sich te deleten en opnieuw te schrijven, iets als:

code:
1
2
3
4
5
6
<span id="fileupload"><input type="file"></span>

function resetFileupload() {
   document.getElementById('fileupload').innerHTML = ""
   document.getElementById('fileupload').innerHTML = ""><input type='file'>"
}

(netter is natuurlijk met createElement en replaceChild/deleteChild te werken)

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Omdat dat een oude browser is die wel meer rare en eigen js dingen ondersteund.

Huur mij in als freelance SEO consultant!


  • whitey-d
  • Registratie: April 2000
  • Laatst online: 13-05 18:09
ik zal al te wachten op zo'n reactie :) Dat IE eigenwijs is is wel duidelijk in elk geval.

Maar die oplossing van RM-rf ziet er wel strak uit, daar ga ik wel mee klooien. Het punt is dat ik zo weinig mogelijk tags eromheen wil zetten, maar als het niet anders kan dan heb ik er vrede mee.. Het mooiste zou zijn om direct het object aan te kunnen spreken en daar iets mee te doen, maar waarschijnlijk blijf je dan in de problemen komen met privileges?

“Advertising says to people, 'Here's what we've got. Here's what it will do for you. Here's how to get it.'”


Verwijderd

hier staat ook veel, misschien heb je er wat aan, volgens mij moet het kunnen d.m.v. een alert waarbij de gebruiker al dan niet toestemming geeft.

http://www.mozilla.org/pr...signed-scripts.html#privs

  • whitey-d
  • Registratie: April 2000
  • Laatst online: 13-05 18:09
Hmm ok ik heb even lopen prutsen, het idee is namelijk dat er gewoon een lijst van max. 5 attachments moet kunnen worden toegevoegd, maar men begint met 1 veld, en klikt op knop om een file toe te voegen waarna een nieuw (leeg) file-veld verschijnt, bovenaan de lijst. Ik heb nu maar voor het gemak een scriptje laten zorgen voor de gegenereerde HTML daarvoor, en ik heb daarbij een andere aanpak gehanteerd: file input value in JS array stoppen en in de code laten schrijven door Javascript (dus file input met extra veld value='blaat'). Maar dit werkt uiteraard ook niet vanwege dezelfde securityredenen... :(

Volgens mij is dan de enige optie een combi van wat ik eerst had en de scriptaanpak: de Attachment-code gewoon laten staan, beetje met scripting zorgen dat de knoppen Toevoegen en Verwijderen achter een attachment goed komen te staan en dan nog een extra, leeg file input veldje erachter plakken.

“Advertising says to people, 'Here's what we've got. Here's what it will do for you. Here's how to get it.'”


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 19:24
Of je neemt een of andere java applet: http://www.jupload.biz/

  • whitey-d
  • Registratie: April 2000
  • Laatst online: 13-05 18:09
Mja, op zich ben ik niet fan van applets, ik heb altijd het idee dat het trager wordt, en rommeliger, ik wil gewoon met een formpje kunnen werken, werkt ook prima met uploadcomponenten e.d. Ik zit alleen een beetje in de knoop met een handige attachmentconstructie die een beetje mooi werkt, client side totdat alles in de upload gegooid kan worden. Het zal wel makkelijker kunnen, als iemand (al) geniaal genoeg is (geweest) voor een perfecte oplossing dan hoor ik het graag ;)

“Advertising says to people, 'Here's what we've got. Here's what it will do for you. Here's how to get it.'”


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

In Explorer kan dit ook niet hoor :?

Is ook nogal logisch allemaal.. anders kunnen mensen zomaar zut van je computer downloaden zonder dat je het weet :P

[ Voor 63% gewijzigd door Bosmonster op 08-04-2004 18:36 ]

Pagina: 1