2010-04-22 68 views
0

我有一個很大的問題。我製作了一個簡單的谷歌瀏覽器插件(基於舊的Youtube視頻下載器),但我遇到了一些問題。第一個問題是它不會在點擊時彈出一個新的保存窗口,但會在默認的Chrome播放器中打開一個包含視頻的新頁面。第二個是,當用戶點擊右鍵點擊保存時,他們將不會獲得視頻名稱,而是獲得標準化名稱。在JavaScript中下載一個php鏈接的文件

有沒有辦法用指定的文件保存名稱來創建文件保存對話框?

編輯:

鏈接自動生成基於Youtube視頻鏈接,是這樣的:

document.getElementById('watch-description-body').innerHTML+='<button id="download-youtube-video-button" data-button-listener="" data-tooltip-timer="300" class="yt-uix-button yt-uix-tooltip" data-tooltip="Right-click and click Save Link As... to download" type="button">'+'<a href="http://www.youtube.com/get_video?video_id='+video_id+'&t='+t+'=" style="padding: 2px">FLV</a></button>' ; 

所以基本上它的廣告按鈕將現有的頁面,用指定的鏈接:

http://www.youtube.com/get_video?video_id='+video_id+'&t='+t+'= 

其中video_id是視頻ID號碼,t是玩家停止的時間。

+2

你沒有描述插件的作用,以及文件的來源。無法爲您提供您現在提供的信息。 – 2010-04-22 18:36:02

+0

因此,不可能創建一個新的文件下載窗口,其中包含指定的保存鏈接和指定的名稱? – fonix232 2010-04-25 13:57:09

回答

1

或者您可以在html的錨標記中使用新的HTML5屬性download

的代碼看起來像

<a download href="path/to/the/download/file"> Clicking on this link will force download the file</a> 

它適用於Firefox和Chrome最新版本。它也似乎工作IE6 +

2

1)要「強制」下載,而不是頁面加載,您需要提供一個Content-Disposition: attachment HTTP標頭。

+1

2)這也允許你提供一個你選擇的默認文件名:'Content-Disposition:attachment; filename = FunnyKittensLOL.flv' – 2010-04-22 18:47:09

+2

爲了添加這個自定義標題,你可能需要通過服務器代理原始文件。 。你的插件可能需要有一個服務器端依賴) – 2010-04-22 18:48:55

+0

這對我來說沒有任何意義,對不起。你能告訴我我應該把這些線放在哪裏嗎? – fonix232 2010-04-22 18:51:21