在href中链接javascript并禁用JavaScript支持

时间:2013-05-27 15:51:49

标签: javascript asp.net noscript

我们有一些与JavaScript制作的href的链接:

<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>

然后用户将看到断开的链接和正确的链接。如何从用户界面删除损坏的链接?

2 个答案:

答案 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

答案 1 :(得分:1)

这是一些伪代码:

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

正如您所看到的,默认情况下它会使用您想要回退的普通链接。当用户启用JavaScript时,该链接永远不会执行,因为onclick首先运行。返回false是为了防止触发真实链接。