2012-01-17 167 views
0

我對整個html語言都很陌生(最近開始創建我自己的網站)。Html/css:與實際鏈接不同的「下載鏈接文件...」

讓我描述我的問題是什麼:

我有一個類型的文件樹中尋找菜單設置,允許用戶瀏覽低谷我的網站。在它的每一項都是一個HTML頁面的鏈接保存一個版本突出了syntaxhighlighter文件:

<a href="files/hl_file.html" target="content_page">file.cpp</a> 

然而,我會用戶可以右鍵點擊這個鏈接,並使用「另存爲...「菜單保存文件本身。現在我設置東西的方式不允許這樣做,因爲右鍵單擊保存將僅保存突出顯示的html文件hl_file.html而不是file.cpp

在上面的代碼"content_page"是一個iframe實際上保存整個網頁。

有沒有辦法在某種額外的處理右鍵單擊下載的href?

+0

默認情況下,不需要使用大量Javascript處理右鍵單擊並顯示可用選項。 – 2012-01-17 21:03:56

+0

但它可能嗎?沒有太多不同的選項IMO:左鍵單擊 - >在'content_page'目標中打開html,右鍵單擊 - >下載文件'file.cpp'。 – romeovs 2012-01-17 21:13:15

回答

1

將您的代碼的所有鏈接放在一個特殊的類(如.syntax)。然後你就可以改變你的元素與下面的代碼的行爲:

<!DOCTYPE html> 
<html> 
<title>basic demo</title> 
<script> 
window.addEventListener('load',function(){ 
    // run this function when the website is loaded completly 
    // use DOMContentLoaded if you prefer to load it earlier. 
    for(var i=0, p; p = document.querySelectorAll('a.syntax')[i];++i){ 
      // this will run through all anchor tags tagged with the class 'syntax' 
     p.oldhref = p.href; // save old href 
     p.addEventListener('mousedown',function(e){ 
        // Capture mouse events 
      if(e.button === 2) // Check for right click 
       this.href = this.firstChild.data; // Right click 
       // Please ensure that your a tag contents the correct link. 
       // If not, alter it to 'src/' + this.firstChild.data 
       // or whatever your src directory is. 
      else 
       this.href = this.oldhref; // left click, use original href 
     },false); 
    } 
},false); 
</script> 
<body> 
<a href="http://google.de" class="syntax">http://stackoverflow.com</a> 
</body> 
</html> 

這不會改變你的瀏覽器的行爲,因爲它是所有變化的URL。請參閱http://jsfiddle.net/wHB3m/1/

+0

好的,我該如何指定需要下載的文件? – romeovs 2012-01-17 21:49:09

+0

哦,我看到它在鏈接名稱中指定。適合我! – romeovs 2012-01-17 21:53:02

+0

@romeovs:不客氣。是的,需要下載的文件在'this.firstChild.data'中指定,該文件爲'this_URL'。你可以在代碼中看到它。看看http://www.w3schools.com/dom/dom_nodetype.asp – Zeta 2012-01-17 22:11:06

3

有直接下載無特殊HREF,但你可以嘗試用一個自定義菜單,其中有對下載的鏈接要公開更換右鍵菜單:

演示:http://labs.abeautifulsite.net/archived/jquery-contextMenu/demo/

通過:http://www.abeautifulsite.net/blog/2008/09/jquery-context-menu-plugin/

設置你的HTML: <a href="..." data-downloadhref="...">File</a>

然後在您的 「下載」 回調使用: document.location = $(el).data('downloadhref')

編輯:這使用jQuery,所以你需要使用和熟悉,使其工作。你可能會找到一個類似jQuery的腳本。只需谷歌Javascript Context Menu左右。

+0

+1這很酷,但我覺得太過分了。我有一種使用用戶外觀和感覺的方式(例如,看起來像Mac上的Mac右鍵菜單和Windows上的Windows右鍵菜單)? – romeovs 2012-01-17 21:26:20

+0

我同意。從來沒聽說過。 – 2012-01-20 07:51:26