我有一个帮助链接。如果用户点击它,它会打开一个具有固定宽度和高度的新窗口。它运行良好,但是当我右键点击链接时,没有选项可以在新选项卡中打开' (在IE中)或者我可以在新标签页中打开,但是会转到空白页面(chrome)。任何人都可以帮助使这个像链接一样,默认情况下在新窗口(而不是标签)中打开吗?
<html>
<head>
<title>
link
</title>
<script type="text/javascript">
function activateHelpView(helpUri) {
var WindowId = 'SomeWindowId';
var helpWindow = window.open(helpUri, WindowId, 'width=400,height=500,menubar=no,status=no,scrollbars=no,titlebar=no,toolbar=no,resizable=yes');
if (helpWindow) {
(helpWindow).focus();
}
}
</script>
</head>
<body>
<a id='PortOrderPageLearnMoreLink' href='javascript:' title='Learn more' onclick='activateHelpView("http://stackoverflow.com/")'>Learn more</a>
</body>
</html>
答案 0 :(得分:2)
使用真实链接,而不是空javascript:
地址。 onclick
处理程序可以阻止链接执行“正常”操作,但是您可以使用右键单击来处理。
target=_blank
是一个强烈暗示,您希望在新窗口中打开页面,但是否完全尊重 - 以及是否在窗口或标签中 - 是否超出了页面的控制范围。
<script type="text/javascript">
function activateHelpView(helpUri) {
var WindowId = 'SomeWindowId';
var helpWindow = window.open(helpUri, WindowId, 'width=400,height=500,menubar=no,status=no,scrollbars=no,titlebar=no,toolbar=no,resizable=yes');
if (helpWindow) {
(helpWindow).focus();
}
}
</script>
<a id='PortOrderPageLearnMoreLink' href='http://stackoverflow.com/' title='Learn more' onclick='activateHelpView(this.href); return false;' target='_blank'>Learn more</a>
处理所有这些的更现代的方法 - 特别是如果有多个帮助链接 - 是为所有这些添加一个类,并运行一些JavaScript来依次添加点击处理程序。 HTML保持干净(并且使用真实链接,如果禁用或未加载JavaScript,仍然可以使用)。
var helplinks = document.querySelectorAll('.helplink');
for (var i = 0; i < helplinks.length; ++i) {
helplinks[i].addEventListener('click', activateHelpView);
}
function activateHelpView(event) {
event.stopPropagation(); // don't let the click run its course
event.preventDefault();
var helpUri = this.href; // "this" will be the link that was clicked
var WindowId = 'SomeWindowId';
var helpWindow = window.open(helpUri, WindowId, 'width=400,height=500,menubar=no,status=no,scrollbars=no,titlebar=no,toolbar=no,resizable=yes');
if (helpWindow) {
helpWindow.focus();
}
}
<a id='PortOrderPageLearnMoreLink'
href='http://stackoverflow.com/' title='Learn more'
class='helplink' target='_blank'>Learn more</a>
不允许StackOverflow片段使用其中一些功能。可以找到一个工作示例here。