2010-06-16 39 views
5

顯示不需要href屬性的錨的首選方式是什麼(因爲它只用於javascript)?首選的方式來顯示不需要href的錨?

例如,<a href="#">example 1</a><a href="javascript:;">example 2</a>

+0

重複的http://stackoverflow.com/questions/134845/href-for-javascript-links-or-javascriptvoid0 – stefanglase 2010-06-16 09:31:02

回答

2

正如其他用戶所說,如果一個非JavaScript的後備可能比使用它作爲你的href。

在用於與JavaScript的用戶的彈出打開圖像,的

實施例而回落到正常的網頁加載爲用戶無需(使用jQuery):

<a class="popup" href="path/to/image.png">Baby Llama Picture</a> 

<script> 
    // Assuming a function called popUpImage does the magic 

    $('.popup').click(function(event) { 
     popUpImage($(this).attr('href')); 
     event.preventDefault(); 
    }); 
</script> 

不具有有用定義的行爲無javascript的任何鏈接應該使用javascript注入頁面。這樣,沒有javascript的用戶將永遠不會看到它們,並且不需要提供有效的href。動態插入的JavaScript僅鏈接(使用jQuery)的

實施例:

<img class="editable" src="baby-llama.png" /> 

<script> 
    // Assuming a function doEditing that allows javascript based editing of an image 

    $(function() { 
    $('.editable').each(function() { 
     var editable = $(this); 

     var editLink = $('<a href="">Edit image</a>'); 
     editLink.click(function() { 
     doEditing(editable); 
     }); 
     editable.insertAfter(editLink); 
    }); 
    }); 
</script> 
6

您應該始終爲沒有使用Javascript的用戶設置回退鏈接。當調用javascript時,您可以從處理程序返回false以避免鏈接激活。例如:

<a href="page.html" onclick="doSomething(); return false;">example 1</a> 

如果沒有合適的頁面鏈接,替代方法是根本不使用鏈接。改爲使用按鈕。如果真的有必要,你可以將它設計成看起來像你的鏈接。

+0

即HTTP ://icant.co.uk/articles/pragmatic-progressive-enhancement/#build – Quentin 2010-06-16 09:16:12

3

理想情況下,href應該儘可能接近JavaScript將要做的事情。

例如,如果Javascript打算用更大的圖片彈出一個燈箱,href應該帶你到一個新的頁面,你可以看到一個更大的圖片。

如果你採用這種方法,那麼沒有javascript的人仍然可以獲得很好的體驗,而使用javascript的人可以獲得更平滑,更有光澤的體驗。

退房Unobtrusive JavaScriptProgressive enhancement

0

你應該堅持DisgruntledGoat提到什麼rikh,使您的網站可用於peaple withou的JavaScript。

如果你想做一些不需要或不可能使用javascript的東西,你應該使用<a href="#">example 1</a>並讓你onclick-funktion return false以防止跳轉到頁面的頂部 - 但最好的方式總是一個「正常「鏈接作爲後備。