使用“计算”​​URL锚定

时间:2012-03-07 08:18:24

标签: javascript jquery

我有一个JS脚本,在HTML页面中附加了对:input + anchor

我可以在重定向发生之前计算网址吗?

现在我的链接看起来像这样:

<a href="#" onclick="myFunct();return false;">link</a>

myFunct使用window.location.href重定向网页。这种方法的问题在于,我无法(显然)CTRL +点击链接以在新标签中打开目标链接。

详细信息:

  • 从服务器获取URL后,链接URL是已知的 - 这个操作对我来说非常昂贵,我想这样做只是为了绝对必要。

  • 这个想法是:用户选择一个链接,他/她点击它,从服务器获取网址并重定向用户(如果他/她使用CTRL +点击,则在同一窗口或新选项卡中)< / p>

谢谢!

4 个答案:

答案 0 :(得分:3)

我不完全确定这是你正在寻找的东西,试着给你的主播id

<a href="#" id="mylink">link</a>

然后只更新href属性以更改新位置(可能是在输入上更改?

<input onchange="changeLink(this)" value="http://www.google.com/"/>

function changeLink(elem) {
    var mylink = document.getElementById('mylink');
    mylink.href = this.value;  // you could prepend your value with a domain
}

每次input中的值更改时,href都会更改为匹配

答案 1 :(得分:3)

而不是使用onmousedown进行导航,您只需重写href

即可
<a href='http://www.google.com' id='computed_link' onmousedown='handleClick()'>Computed Link!!</a>
<script type='text/javascript'>
function handleClick()
{
    document.getElementById('computed_link').href = 'http://www.yahoo.com';
}
</script>

答案 2 :(得分:0)

您可以在页面加载

上创建所有链接
function myFunct(link)
{
    return 'http://' + link + '#hash';
}

$('a').each(function(){
    $(this).attr('href', myFunct( $(this).text()) );
});​

演示http://jsfiddle.net/MpM6Y/

<强>更新

你可以在没有jQuery的情况下(更痛苦)使用var a_list = document.getElementsByTagName('a');和使用a_list的{​​{1}}循环

答案 3 :(得分:0)

我通过预先计算链接和优化代码来解决我的问题,使开销尽可能低。