我有一个JS脚本,在HTML页面中附加了对:input + anchor
我可以在重定向发生之前计算网址吗?
现在我的链接看起来像这样:
<a href="#" onclick="myFunct();return false;">link</a>
和myFunct
使用window.location.href
重定向网页。这种方法的问题在于,我无法(显然)CTRL +点击链接以在新标签中打开目标链接。
详细信息:
从服务器获取URL后,链接URL是已知的 - 这个操作对我来说非常昂贵,我想这样做只是为了绝对必要。
这个想法是:用户选择一个链接,他/她点击它,从服务器获取网址并重定向用户(如果他/她使用CTRL +点击,则在同一窗口或新选项卡中)< / p>
谢谢!
答案 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()) );
});
<强>更新强>
你可以在没有jQuery的情况下(更痛苦)使用var a_list = document.getElementsByTagName('a');
和使用a_list
的{{1}}循环
答案 3 :(得分:0)
我通过预先计算链接和优化代码来解决我的问题,使开销尽可能低。