【问题标题】:How to window.open with a toolbar in Google Chrome?如何在 Google Chrome 中使用工具栏打开 window.open?
【发布时间】:2011-02-03 19:32:14
【问题描述】:

以下 javascript 在 Firefox、Safari、IE 和 Google Chrome 中打开一个弹出窗口:

window.open("http://google.com", "foo", "toolbar=yes,location=yes,menubar=yes")

但是,在 Google Chrome 中,工具栏(带有通常的前进和后退按钮等)不会出现在弹出窗口中。 (在 Windows 和 Mac 上测试。)

我该如何解决这个问题?我希望用户能够使用他们最熟悉的工具向前和向后导航。

【问题讨论】:

标签: javascript google-chrome popup


【解决方案1】:

不幸的是,Chrome 在使用 window.open 时仅支持一小部分窗口功能。如果您认为这是一个错误或问题,您可以将其提交至 [http://crbug.com]

如果您只使用 window.open(url),那么它将在同一个窗口中打开一个新标签页,其中包含您想要的按钮。

【讨论】:

  • 谢谢!有没有一种首选方式可以在 Chrome 中打开允许工具栏的弹出窗口?
  • @brahn 是的,Google 希望您为此使用标签。
【解决方案2】:

Chrome 存在一个错误: https://code.google.com/p/chromium/issues/detail?id=82522

它没有得到谷歌的太多关注。投票给它。

【讨论】:

  • 在这方面我更支持 Google。我非常希望禁用所有新标签打开。这将迫使用户学习如何为自己选择(alt 或右键单击),并迫使网站考虑更好的用户体验。弹出窗口普遍对用户怀有敌意,或者充其量是经过深思熟虑的 UI。
【解决方案3】:

更新当前行为(截至 2017 年 4 月 26 日)

当大小尺寸作为参数传递给 window.open 时,预期的行为应该是一个新的弹出窗口(如果启用了工具栏,则将工具栏添加到弹出窗口)。如果未指示尺寸,则默认打开一个新选项卡(在这种情况下,启用工具栏是默认设置)。 (顺便说一句,这是 FF 当前行为(版本 54.0a2))。

Chrome 行为 (Canary 60.0.3079.0)

打开弹出窗口到指定的尺寸 window.open("https://google.com","foo","width=800, height=780")

打开新标签(浏览器默认最小化大小,忽略大小尺寸) window.open("https://google.com","foo","width=800, height=780,toolbar=1")

FF 行为

带尺寸尺寸 打开没有工具栏的弹出窗口(没有工具栏) window.open("https://google.com","foo","width=800, height=780")

使用工具栏打开弹出窗口 window.open("https://google.com","foo","width=800, height=780, toolbar=1")

无尺寸 打开新标签 window.open("https://google.com","foo") window.open("https://google.com","foo", "toolbar=1")

【讨论】:

  • 这种行为很可能不会改变,因为谷歌是故意这样设计的。据我所知,如果您想要完整的工具栏控制而不是弹出窗口,他们希望您使用选项卡,这与弹出窗口如何容易被恶意滥用有关。
【解决方案4】:

Chrome 的唯一选择是不指定第三个参数。 Chrome 会忽略第三个参数,因为根据 HTML 5 规范它们是正确地允许这样做的,但如果存在,则窗口似乎总是在没有控件的浮动寡妇中打开。

如果您不指定第三个参数,则打开的窗口将是一个新选项卡,并具有用户需要的所有功能。

如果您确实指定了第三个参数,您将获得一个新的浮动窗口,除了显示 URL 之外没有其他控件。

【讨论】:

    【解决方案5】:

    我知道这是一篇旧帖子,但最近的答案是 2013 年 9 月,所以我将此作为跟进此答案的理由。如果这不是适当的礼仪,请提前道歉。

    https://code.google.com/p/chromium/issues/detail?id=82522

    这是 Chrome 支持页面上的错误链接。

    我在这里发布它是希望其他遇到此问题的人会引起对这个问题的关注,正如之前的回答中所建议的那样。

    对于将此评论作为单独的答案发布,我深表歉意。我没有足够的业力以正确的方式做到这一点。

    【讨论】:

    • 虽然作为错误提出,但它不是错误。 Google 故意这样设计它,因为他们希望您使用标签作为默认选项,并根据需要设计自己的弹出解决方案。
    • 我在很多地方工作过,如果一个软件不符合约定的规范,我们称之为“错误”。公司的规模让我们称之为“特色”。 w3.org/TR/html5/browsers.html#the-toolbar-barprop-object
    猜你喜欢
    • 2012-06-17
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 2019-10-24
    相关资源
    最近更新 更多