2011-02-01 12 views
5

Używam witryny Microsoft Technet i można pobrać pliki ISO, klikając łącze na stronie. Element jest tak:Jak działa łącze do pobierania javascript?

<a href="javascript:void(0)" onmouseout="HideToolTip()" 
    onmouseover="ShowToolTip(event,'Click here to download.')" 
    onclick="javascript:RunDownload('39010^313^164',event)" 
    class="detailsLink">Download</a> 

I nie był w stanie znaleźć sposobu na skryptach RunDownload(). I zastanawiałem się, co może zrobić. Mam na myśli zazwyczaj, gdy podaję link do pobrania. Podaję do niego link:

<a href="www.foo.com/mymp3.mp3">download</a> 

Ale to działa inaczej, co robi skrypt? Ponieważ nawet gdy uruchomiłem "Skrzypek", nie byłem w stanie zobaczyć rzeczywistej lokalizacji pobierania.

+0

istnieją na wiele sposobów takie rzeczy mogą działać. – Pointy

+0

Zakotwiczenie działa tylko wtedy, gdy jest ono przechowywane jako plik na serwerze, a następnie istnieje ścieżka, z której można uzyskać bezpośredni dostęp (na przykład w witrynie www.foo.com/mymp3.mp3). Jeśli na przykład przechowujesz binarną zawartość pliku w bazie danych na serwerze, nie możesz tego zrobić w ten sposób, ponieważ nie istnieje taka ścieżka. –

+0

"Brak takiej ścieżki" nie ma znaczenia w niektórych przypadkach, na przykład, jeśli masz jakieś zasady przepisywania URL. Wtedy to, co jest dostępne do pobrania, nie musi być fizycznym plikiem na twoim serwerze internetowym, może to być dynamicznie generowana zawartość (może pochodzić z bazy danych). – BiAiB

Odpowiedz

2

Lokalizacja pobierania może być ścieżką przepisaną przez URL. Oznacza to, że być może niektóre parametry są podane z postem HTTP, a niektóre programy obsługi HTTP w serwerze sieci Web lub aplikacji internetowej mogą pobierać pewne argumenty z żądania HTTP i zapisywać bajty plików na odpowiedź HTTP, która absolutnie ukrywa, gdzie znajduje się plik w rzeczywisty system plików serwera.

Może to właśnie kryje się za kulisami i uniemożliwia poznanie lokalizacji pliku.

Na przykład, możemy mieć to: http://mypage.com/downloads/1223893893

A ty o wykonywalny jak „whatever.exe” za pobraniem na dysk twardy. Gdzie jest "http: /mypage.com/downloads/whatever.exe"? Właściwie to nie istnieje. Jest to tablica bajtów zapisana w długiej bazie danych w pewnym rekordzie, a aplikacja internetowa "mypage" obsługuje żądanie pliku, który jest oznaczony jako "1223893893", który może być kombinacją identyfikatora, daty lub dowolnego argumentu.

+0

@workdreamer oh, to wymyślony link hahaha! to tylko przykładowy link;) –

+0

Przepraszam za bardzo głupie i głupie pytanie, nie przeczytałem całego komentarza, spieszyłem się, aby znaleźć odpowiedź. Dziękuję Ci bardzo – workdreamer

8

Nie ma czegoś takiego jak link "Pobieranie javascript". JavaScript może otworzyć nowe okno lub symulować kliknięcie linku.

To, co musisz znaleźć, to który url wywoła funkcja wywołana przez to kliknięcie.

oto przykład jak to zrobić:

Załóżmy, że mamy:

<a id="download">download Here §§§</a> 

następnie ten kod jQuery:

$('#download').click(function() { 
    window.location.href = 'http://example.org/download/ISO.ISO'; 
}); 

będzie przekierowywać do URL http://example.org/download/ISO.ISO. To, czy ten URL rozpocznie pobieranie, zależy od nagłówków HTTP i przeglądarki, a nie od tego, co robi javascript.

0

Mówisz, że masz problem z StartDownload w js, nie ma takiej funkcji w JavaScript.więc myślę, że pobieranie kotwica nie działa
co u można zrobić, to umieścić atrybut w tagu pobierania kotwicy jako prawdziwe i będzie dobrze Mam przykład

<a href="video.mp4" download="true">Download</a> 

UWAGA: jeśli będzie umieścić atrybut pobierania i href będzie miejscem jak http://google.com nie otworzy go jednak pobrać stronę
dobrze, jeśli chcesz, aby rozpocząć pobieranie w tle istnieje kilka opcji, ale najłatwiejszą:

<iframe name="site_back_load" style="display:none;"></iframe> 
<a href="File.mp4" download="true" target="site_back_load">start download</a> 
Powiązane problemy