在新标签页或窗口中打开时,Javascript链接无效

时间:2011-03-15 21:41:27

标签: javascript html hyperlink

我有一些这样的链接

<a href="#" onclick=aFunction(this)>link</a>

“aFunction”在当前窗口中打开链接。

单击此链接时,可以打开链接,但如果单击“在新选项卡中打开”或“在新窗口中打开”,则无效。

aFunction代码是这样的:

aFunction(object)
{
   object.href = "www.mypage.com"
}

4 个答案:

答案 0 :(得分:1)

使用“在新X中打开”的上下文菜单不会触发click事件。如果您的代码只是设置新窗口的地址,那么您可以做得更好

<a href="http://www.mypage.com" target="_new">link</a>

代替。它不会验证,但它会降级更好。

答案 1 :(得分:0)

为什么你会这样做而不只是把url放在href参数中?如果你想通过添加点击处理程序,即使正确使用href属性,你仍然可以在click事件上做其他的事情。

<a href="http://www.mypage.com">link</a>

<script type="text/javascript">
$(function() { // using jQuery for simplicity, but other methods work, too.
   $('a').click( function() {
        // do some other stuff
   });
});
</script>

请注意,如果不返回false(或使用preventDefault()),我们允许在javascript运行后执行正常的点击操作。

答案 2 :(得分:0)

使用此:

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

<script>
function changeUrl()
{
   if( /* some condition here */ )
      document.getElementById('mylink').href = "www.someurl.com";
   else
      document.getElementById('mylink').href = "www.someotherurl.com";
}
</script>

这样,浏览器的“在新标签页中打开链接”不会停止

如果用户触摸页面上的某些内容时情况发生了变化,那么您只要触摸changeUrl就需要致电Node

答案 3 :(得分:-1)

请在下面找到一个在新窗口中打开网址的功能:

function load() {
var load = window.open('http://www.domain.com','','scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,location=no,status=no');}