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