如何在不显示工具栏和菜单栏的情况下打开新窗口中的URL?

3

我正在尝试使用window.open在新窗口中打开URL。

我有一个包含一些URL的锚点标签列表,当我点击这些标签时,javascript应该获取href =“”值并将该值传递给javascript函数。

下面是我的代码:

<html>
<head>
</head>
<script>
var a;
    function popitup(a)
    {
        window.open(a,
        'open_window',
        'menubar=no, toolbar=no, location=no, directories=no, status=no, scrollbars=no, resizable=no, dependent, width=800, height=620, left=0, top=0')
    }
</script>
<body>
<form name="popup" >
<a href="http://www.yahoo.com" onclick="popitup(this.value)">yahoo</a>
<a href="http://www.google.com" onclick="popitup(this.value)">Google</a>
<a href="http://www.msn.com" onclick="popitup(this.value)">MSN</a>
</form>
</body>
</html>

当我点击Yahoo时,www.yahoo.com应该在新窗口中打开。同样的情况也适用于其他链接。
但是现在当我点击这些链接时,在新窗口中出现“服务器未找到”的错误。
我该怎么解决?
4个回答

11

您有以下问题:

  1. 参数中有空格
  2. 大多数浏览器将忽略status=no和更多-scrollbars,例如
  3. 即使打开了窗口,也会跟随链接-返回false或者像我展示的那样,如果弹出窗口完成了任务则为false,否则为true。
  4. 不需要表单。链接不是表单元素,没有值而是href。

如果您没有弹出窗口拦截程序且没有“在标签页中打开新窗口”选项,则此代码可能在您的浏览器中有效。如果有弹出窗口拦截程序,则链接仍然有效。

function popitup(link) {
  var w = window.open(link.href,
    link.target || "_blank",
 'menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no,dependent,width=800,height=620,left=0,top=0');
  return w ? false : true; // allow the link to work if popup is blocked
}
<a href="https://www.yahoo.com" onclick="return popitup(this)">yahoo</a>
<a href="https://www.google.com" onclick="return popitup(this)">Google</a>
<a href="https://www.msn.com" onclick="return popitup(this)" target="MSN">MSN</a>

这些参数是我会使用的。

'resizable,width=800,height=620,left=0,top=0'

现场演示不存在。 - user4717133
@FranciscoNúñez 现在它可以了。 - mplungjan
所以请将其保存到您的服务器并允许弹出窗口!代码按设计执行它被允许做的事情。 - mplungjan
@FranciscoNúñez,在你和别人谈论这个脚本在2020年是否适用之前,你介意不要投票否定一篇7年前的帖子吗? - mplungjan

2
在您的onclick处理程序中,请使用this.href而不是this.value。锚标签的href属性不是它的值。

1
<html>
<head>
</head>
<script>
var a;
    function popitup(a)
    {
        window.open(a,
        'open_window',
        'menubar=no, toolbar=no, location=no, directories=no, status=no, scrollbars=no, resizable=no, dependent, width=800, height=620, left=0, top=0')
    }
</script>
<body>
<form name="popup" >
<a href="http://www.yahoo.com" onclick="popitup(this.href)">yahoo</a>
<a href="http://www.google.com" onclick="popitup(this.href))">Google</a>
<a href="http://www.msn.com" onclick="popitup(this.href))">MSN</a>
</form>
</body>
</html>

DEMO

可以翻译为:

{{链接1:演示}}


2
这将弹出并跟随链接。 - mplungjan

1
最新更新基于mplungjan的解决方案,使用ES6 JavaScript编写。

document.addEventListener("click", navigateTo, false);
function navigateTo(event){
  if (event.target.matches('a')) {
      window.open(event.target.href,"_blank",'menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=yes,dependent,width=800,height=620,left=0,top=0');
 }
  event.preventDefault();
  return false;
}
<html>
<head>
</head>
<body>
you need run this locale to check Code Snippet not allow Popups<br>
<a href="http://www.yahoo.com">yahoo</a>
<a href="http://www.google.com">Google</a>
<a href="http://www.msn.com">MSN</a>
</body>
</html>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接