目前我在我的网站中使用这个小块 js 来让我的 div 充当一个按钮:
<div id="item" onclick="location.href='http://www.google.com';" style="cursor:pointer;">Google</div>
但是当网页浏览打开大量标签时,我经常做的事情。有什么办法可以修改我的代码以允许这样做吗?
目前我在我的网站中使用这个小块 js 来让我的 div 充当一个按钮:
<div id="item" onclick="location.href='http://www.google.com';" style="cursor:pointer;">Google</div>
但是当网页浏览打开大量标签时,我经常做的事情。有什么办法可以修改我的代码以允许这样做吗?
这应该这样做: -
<html>
<head>
<style>
.sampleDiv
{
position:relative;
margin:0px auto;
width:400px;
height:200px;
background-color:#CCCCCC;
text-align:center;
}
.actualLink
{
position:absolute;
top:0px;
left:0px;
width:100%;
height:100%;
}
.linkText
{
position:relative;
top:80px;
}
</style>
</head>
<body>
<div class="sampleDiv">
<a class="linkText" href="test.html">testing</a>
<a class="actualLink" href="test.html"></a>
</div>
</body>
</html>
与类 actualLink 的链接覆盖了整个 div。类 linkText 的链接提供文本。使用两个标签的目的是,如果您只使用actualLink,那么您无法将文本放置在您想要的任何位置。通过使用带有类linkText的链接,您可以灵活地(垂直)居中文本(水平居中可以仅使用actualLink完成)
我的解决方案是用锚块替换 div 块。锚块现在可以采用几乎任何 div 可以做的 CSS 样式,但它也可以包括 href,浏览器将识别并为您提供您想要查看的右键单击选项。
这么老:
<div class="divClass" onClick="location.href='http://www.google.com'">asdf</div>
变成
<a class="divClass" href="http://www.google.com">asdf</a>
您不能直接执行此操作,因为这是他们浏览器上的用户设置,无论窗口是作为新窗口打开还是作为选项卡打开。
有,target="_newtab"
但没有得到广泛支持。
所以在onclick中:
window.open('page.html','_newtab');
但试图覆盖用户浏览器偏好并不是一个好主意IMO。
要在右键单击时执行此操作,例如:
$('#item').mousedown(function(event) {
if(event.which == 3) { // right click
window.open('page.html','_newtab');
}
})
你可以这样做:
onclick="window.open('http://www.google.com', somename);" ...
你的意思是,像:
..onmousedown="op(your_url,event);"..
function op(url,event) {
if (event.button == 2) {
window.open(url);
}
}
实际上没有跨浏览器的方法可以做到这一点。Forms 或 window.open 将打开一个新窗口,而不是新选项卡。并且不要尝试在内存中创建链接并使用 javascript 单击它,因为作为安全功能,chrome 不会打开新选项卡。