如何在没有工具栏,菜单栏的情况下在新窗口中打开网址

时间:2013-11-22 12:21:11

标签: javascript html

这里我试图使用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>

当我点击雅虎时,www.yahoo.com应该会在新窗口中打开。同样所有

但现在当我点击这些链接时,我在新窗口中收到错误“找不到服务器”。

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:10)

您有以下问题

  1. parms中的空格
  2. 大多数浏览器会忽略status = no和更多 - 例如滚动条
  3. 即使您打开窗口,也会关注该链接 - 返回false或我显示,如果弹出窗口完成,则返回false,如果不是,则为true
  4. 不需要表格。链接不是表单元素,没有值但是href
  5. 如果您没有弹出窗口阻止程序并且没有“在标签中打开新窗口”,那么此代码可能在您的浏览器中有效。如果有弹出窗口阻止程序,则链接仍然有效

    Live Demo

    <html>
    <head>
    </head>
    <script>
    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
     }
    </script>
    <body>
    <a href="http://www.yahoo.com" onclick="return popitup(this)">yahoo</a>
    <a href="http://www.google.com" onclick="return popitup(this)">Google</a>
    <a href="http://www.msn.com" onclick="return popitup(this)" target="MSN">MSN</a>
    </body>
    </html>
    

    我会使用这些参数

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

答案 1 :(得分:2)

this.href处理程序中的this.value代替onclick。锚标记的href属性不是它的值。

答案 2 :(得分: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

答案 3 :(得分:0)

基于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>