Avatar billede per1291 Nybegynder
06. august 2008 - 01:13 Der er 7 kommentarer og
2 løsninger

Hvordan gøre det nemt at downloade en fil uden at køre den?

Hej -

Jeg har lavet et rimelig pænt søgeprogram, der kan finde filer på "din egen computer".
Programmet kan kun køres i Internet Explorer, fordi det benytter noget ActiveX-halløj - og det kan IKKE køres direkte fra nettet.

Jeg vil gerne stille det til rådighed for andre brugere.
Det ligger i øjeblikket på adressen www.onlinebooks.dk/findmelodien/.

Mit problem er, at hvis jeg blot laver et link til programmet på hovedsiden www.onlinebooks.dk, så vil brugeren få en fejlmeddelelse, fordi programmet går i gang med at køre med det samme. Og når brugeren får en fejlmeddelelse, vil den typiske reaktion være at lukke for skidtet og holde sig fra det program for eftertiden.

Jeg har forsøgt mig med at omdøbe filen fra index.htm til index.zip - hvorefter man kan downloade den, og derpå manuelt omdøbe den tilbage til index.htm. Men det virker lidt for omstændeligt på mig, og jeg tror at jeg mister nogle brugere ved det.

Har nogen af jer forslag til, hvad jeg ellers kunne gøre?

Hilsen Per Andersen
Avatar billede per1291 Nybegynder
06. august 2008 - 01:36 #1
Måske findes der en eller anden Javascript-funktion, som siger "Hvis filen ligger på WWW, så - alert('Nu skal du bare høre') ..."

Hilsen Per
Avatar billede coderdk Praktikant
06. august 2008 - 02:01 #2
Du kan måske prøve at bruge try/catch?

http://www.w3schools.com/JS/js_try_catch.asp
Avatar billede w13 Novice
06. august 2008 - 08:06 #3
Det kan gøres med ASP eller PHP i hvert fald.
Avatar billede mclemens Nybegynder
06. august 2008 - 09:26 #4
Måske

if((document.location+"").indexOf("http")!=0){
  Kør scriptet som kræver localgemning/activeX
}

else alert("Gem venligst filen lokalt for at aktivere søgningen");
Avatar billede mclemens Nybegynder
06. august 2008 - 09:30 #5
(alert kan selvfølgelig erstattes med et element med tekst i stil med)

window.onload=function(){

  if((document.location+"").indexOf("http")!=0){
    document.getElementById("lokaltgemt").style.display="none";
    /*Kør scriptet som kræver localgemning/activeX*/
  }

}

...

<div id="lokaltgemt">Gem venligst filen lokalt for at aktivere søgningen</div>
Avatar billede per1291 Nybegynder
06. august 2008 - 09:35 #6
Efter at have forsøgt try/catch (som jeg slet ikke kunne få til at fungere) prøvede jeg med onerror. Det virkede for godt - fordi der altid vil være "error" i Firefox, også selv om filen ligger på computeren.

Løsningen blev et url-check i java script:
if (window.location.href.slice(0,4) == "http") {gør noget andet};

Men tak for forslagene. coderdk, venligst læg et svar fordi dit forslag sikkert ville fungere hvis jeg satte mig lidt mere ind i det.

Hilsen Per
Avatar billede per1291 Nybegynder
06. august 2008 - 09:37 #7
Øv, jeg havde ikke læst mclemens' kommentarer. Det er jo den løsning jeg har brugt. Du må dele med coderdk. Mange tak.

Hilsen Per
Avatar billede mclemens Nybegynder
06. august 2008 - 10:01 #8
Okidoki :)
Avatar billede coderdk Praktikant
06. august 2008 - 10:14 #9
heheh ok :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester