使用Javascript在New Tab中启用Open Link

时间:2011-07-08 04:55:55

标签: javascript html

我希望有一个包含可点击行的表格,点击后会重定向到另一个页面。我现在用Javascript完成这个。但是,如果右键单击,则无法选择“在新标签中打开链接”,大概是因为浏览器只对链接执行此操作?有没有办法启用此行为?

基本上我希望表行像锚标记一样。

3 个答案:

答案 0 :(得分:1)

您是否尝试在每个单元格中设置链接?我有一个类似的问题,当我试图像链接一样整行时,我在每个数据单元格中使用了一个链接:

<td><a class="mylink" href="URL" target="_blank">...</a></td>
...
<style>mylink {display:block; text-decoration:none; color:black;}</style>

即使已禁用JS,此target属性也会起作用。

答案 1 :(得分:1)

下面 http://jsfiddle.net/mplungjan/v5JrS/ 小提琴不会定位菜单,但脚本会 - 在Mac上的Fx5中测试:

<html>
<head>
<style>
#menu { display:none; position:absolute;border:1px solid red; background-color:grey }
#menuLink { text-decoration:none }
tr { border:1px solid black}
</style>
<script>
window.onload=function() {

  var trs = document.getElementsByTagName("tr");

  for (var i=0,n=trs.length;i<n;i++) {
    trs[i].oncontextmenu=function(e) {
      document.getElementById("menuLink").href=this.cells[0].innerHTML;
      var menu = document.getElementById("menu");
      menu.style.left=(e)?e.pageX:event.clientX;
      menu.style.top=(e)?e.pageY:event.clientY;
      menu.style.display="block";
      return false;
    }
  }
  document.getElementById("menuLink").onclick=function() {
    document.getElementById("menu").style.display="none";
    // the following is not really needed since the target works
    // fine on its own
//    var w=window.open(this.href,this.target);
//    return w?false:true;
  }
}
</script>
</head>
<body>
<table>
    <tr>
        <td>http://www.google.com</td>
    </tr>
    <tr>
        <td>http://www.bing.com</td>
    </tr>
</table>
<div id="menu"><a id="menuLink" target="_blank" href="">Open in new window/tab</a></div>
</body>
</html>

答案 2 :(得分:0)

不,无法在所有浏览器上轻松启用此行为。您需要做的是手动更新链接的href以指向您希望用户访问的任何页面。请注意,这需要使用锚(<a>)标记,这可能很难用表格单元格。也许你可以使用某种不可见的图像填充单元格或使用CSS。

查看http://www.webmasterworld.com/forum21/10629.htm - 第四篇文章。