01. november 2005 - 17:55Der er
11 kommentarer og 1 løsning
Popup øverst, men skal være muligt at lave en input type=file
Hej exp.
Jeg har en stort problem, hvor jeg nu prøver jer.. Jeg bruger showModalDialog til at åbne et dialogvindue hvor jeg har en masse fysiske filer vist. Fra denne dialog har jeg en upload knap som jeg åbner via en open() til et nyt popup vindue. Dette nye upload vindue må ikke kunne minimeres så jeg har prøvet med <body onblur="window.focus()"> MEN, da det er en upload funktion i det vindue, kan man ikke bruge <input type=file> nu da det vil gå ind og bryde den onblur. Knappen virker simpelthen ikke..
Jeg kan måske koge spørgsmålet ned til: Hvordan kan jeg sikre et almindelig vindue åbnet fra et dialogvindue ikke kan minimeres, men samtidig ha mulighed for bruge <input type=file> på den side.
var også min første tanke, men da jeg har en form i det vindue åbner den i endnu et vindue hvis den er åbnet med showModalDialog.
Dvs, koden for selve uploadformen + validering.
<%@ language="JScript" LCID=1030 %> <% Response.Buffer = false; Response.Expires = -10000; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html> <head> <title>Upload Dokument</title> <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> var fil = false; var pic = new Image(); var maxSize=5000000;
function fileOC(){ pic.src = document.forms[0].fil.value; }
function valider(){ if(document.forms[0].fil.value){ if(pic.fileSize<=maxSize){ document.getElementById('frm').style.display = "none"; document.getElementById('loading').style.display = ""; anim(0); return true; }else{ alert("Filstørelsen overskrider "+(maxSize/1000000)+"MB.\nGør dokumentet mindre og prøv igen.\n\nSkal du have hjælp til at ændre størrelsen på dokumentet,\nkan du sende det til webmaster"); return false; } }else{ return false; } }
En modalDialog er ikke navigabel, så du kan f.eks. loade en fil med en iframe i den ... i den iframe kan du så loade en fil med en form. Så vil der ikke åbnes et nyt vindue, når formen submittes.
Et andet 'hack' er at submitte en form mod en skjult iframe:
Kan godt se hvad du mener.. Har prøvet at kombinere lidt af det du skriver, men eet problem opstår når min fil så er uploadet.. Der har jeg tidligere lavet et tjek fra min første modal side, som lukkede det vindue efter brug.
Hmmm.. Jeg tror ikke jeg kan bevæge mig derhen du vil.. Jeg giver dig lige lidt mere af denne kode i helhed.. Dette laves på en eksisterende modalDialog hvor jeg har en Select med options i for hvert filnavn. Derfor laver jeg checket på denne side og herfra denne side vil jeg også lukke upload vinduet jeg har åbnet, når handlingen er færdig..
function getfilefirst(fil){ filNavn.options[filNavn.options.length] = new Option(fil,fil); filNavn.options[filNavn.options.length-1].selected = true; }
function getfile(){ // Loop made to avoid IE5.0 bug in window.opener if(!fil.closed){ if(fil.fil){ getfilefirst(fil.fil); fil.close(); }else{ setTimeout("getfile()",1000); } }else{ setTimeout("getfile()",1000); } }
ahh, damn. Det er svært at forklare... Jeg prøver lige at gå i tænkeboks igen
Ok.. jeg har lige et spm. denne: if (fil) { alert("der blev returneret noget" + fil) } fanger ikke noget, da fil ligger inde i en iframe og deklereret her i noget VBscript: Response.Write "<scrip"&"t>fil="""&File.FileName&""";</scrip"&"t>" Hvordan får jeg transporteret den værdi ud til min modeldialog ?
Der var lige det jeg havde brug for: <script language="JavaScript"> function onTop() { self.focus(); setTimeout("onTop()",2000); } onTop(); </script> Nu kan jeg forsætte med at bruge almindeligt vindue.. Det andet her blev for kringlet..
heh, men det virker fint. har dog sat den setTimeout til 4000. Er godt klar over det ikke er den smarteste løsning, da den focus stadig kører i baggrunden når man browser filer lokalt via input=file, men det går :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.