由於RIA和SPA(或使用JavaScript的Web應用程序)變得越來越流行,我一直在使用系統,而不是使用舊的超鏈接a href
,我看到它們利用帶有操作導航的JavaScript代碼的onclick
構造。圖像尤其如此。使用JavaScript代替超鏈接
例如,而不是看到這樣的事情:
<a href="some_url"><img src="...."/></a>
<div ... onclick='SomeJsFunctionThatNavsToAnotherPage()'><img src="..."/></a>
這樣做有什麼好處?它使得難以置信地很難跟蹤頁面在調試或嘗試根源導致錯誤時轉換到哪裏。當導航的目標可以改變時,我可以得到這個想法(所以是的,在這裏你可以使用計算到哪個頁面導航到的函數)。
但是我看到這種模式,即使當頁面導航到常量。我覺得這非常複雜,很難測試。更何況,總是存在特定於瀏覽器的錯誤(根據我的經驗,過度複雜化前端)總是存在的。
但我不是RIA/SPA開發人員(只是後端和傳統網絡發展)。 我是否錯過了背後的理由?
澄清
我的問題是不適合的情況下,當我們要重繪頁面或更改當前的內容,而不改變當前位置。我的問題是,對於原來的 舊轉換,從頁面A到頁面B.
在這種情況下,爲什麼要使用onclick=funcToChangeLocation()
而不是<a href="some location"/>
。
這對我來說是一個痛苦,當排除系統已被寫入(因爲我不會寫他們那樣),但可能有我不知道的原因。
同樣,我的問題不是在不更改瀏覽器位置的情況下自行重新繪製頁面,而是從一個頁面導航到另一個頁面。
ALSO
如果你去投票,關閉了這個問題,至少留言說明原因。
將div與點擊處理程序而不是錨點一起使用是不好的做法,因爲它使得鍵盤用戶無法訪問該功能。 (使用點擊處理程序導航到某個計算出的目標可以使用錨點。) – nnnnnn
不夠公平。但是當你知道目的地在大多數情況下是靜態的,並且當頁面中錨點的唯一功能是簡單地轉換到另一個頁面(沒有副作用)時,通過點擊處理程序而不是錨點使用錨點有什麼好處與簡單的hrefs? –
如果點擊處理程序沒有添加任何超出普通錨點可以完成的操作,那麼我根本沒有看到任何點。 – nnnnnn