2013-05-27 43 views
1

我們有一些帶HREF由JavaScript做鏈接:鏈接使用javascript在href和JavaScript的支持禁用

<a href="javascript:document.location='http://'+location.hostname.replace('.com', '.co.uk')">stackoverflow uk</a> 

我怎麼能提供這樣一個直接的聯繫:

<a href="http://stackoverflow.co.uk/questions/ask"> stackoverflow uk</a> 

當用戶關閉JavaScript的? 我知道有標籤:

<noscript><a href="http://stackoverflow.co.uk/questions/ask"> stackoverflow uk</a></noscript> 

但隨後用戶將看到斷開的鏈接和正確的鏈接兩者。我如何從用戶界面刪除斷開的鏈接?

回答

1

下面是一些僞代碼:

<a href="normalLink" onclick="javascript to create link and submit it; return false">text</a> 

正如你可以看到它使用了你想用默認值回落到正常的鏈路。當用戶啓用JavaScript時,該鏈接從不執行,因爲onclick首先運行。返回錯誤是爲了防止真正的鏈接被觸發。

+0

我要提到我張貼的老式這樣做的方式。昆汀的新代碼更好。 –

3

開始與常規鏈接:

<a id="foo" href="http://example.com">example</a> 

然後JavaScript事件處理程序綁定到它:

var link = document.getElementById('foo'); // OR some other means to select the link 
link.addEventListener('click', myHandler); 

function myHandler(evt) { 
    // Do whatever else you want to do 
    // ... 
    // but don't do the normal link behaviour 
    evt.preventDefault(); 
} 

延伸閱讀:Progressive EnhancementUnobtrusive JavaScript