【问题标题】:How to open a url in new window without toolbar, menubar如何在没有工具栏,菜单栏的新窗口中打开网址
【发布时间】:2013-11-22 12:21:11
【问题描述】:

我正在尝试使用 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 应该会在新窗口中打开.. 同样所有

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

我该如何解决这个问题?

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    您有以下问题

    1. parms 中的空格
    2. 大多数浏览器会忽略 status=no 等 - 例如滚动条
    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'
    

    【讨论】:

    • 现场演示不存在
    • @FranciscoNúñez 现在可以了
    • 所以将它保存到您的服务器并允许弹出窗口!代码按照设计执行其允许执行的操作
    • @FranciscoNúñez 在讨论这个脚本在 2020 年是否适合你之前,你介意不要投票给一个 7 年前的帖子吗?
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:
      <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

      【讨论】:

      • 这也会弹出并点击链接
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2012-05-05
        • 1970-01-01
        • 2011-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多