【问题标题】:Open a new browser window WITHOUT using target="_blank"打开一个新的浏览器窗口而不使用 target="_blank"
【发布时间】:2011-03-28 01:44:26
【问题描述】:

到目前为止,我看到的每个打开新浏览器窗口的解决方案都使用 target 属性将其设置为“_blank”。这令人沮丧,因为在某些浏览器中它只打开一个新标签并将其与http://www.facebook.com/connect/prompt_feed.php?&message=test 的自动调整大小行为结合起来,每当我尝试从我的网站更新我的状态时,它基本上会破坏我的浏览器。

当用户点击链接时,如何确保打开一个新窗口?

谢谢!

Fedang 上的特林达兹

【问题讨论】:

  • 为什么要强制用户打开一个新的标签窗口?
  • 我不确定问题是否相同,但我很确定答案仍然相同:你不能。这是一个用户控制的浏览器设置。

标签: html browser


【解决方案1】:
window.open(URL,name,specs,replace)

function newwindow()
{
myWindow=window.open('','','width=300,height=300');
myWindow.document.write("<p>This should open in a popup</p>");
myWindow.focus();
}

【讨论】:

  • 这是一个弹出窗口,而不是一个新窗口。
  • 不过,它几乎可以绕过用户设置。
【解决方案2】:

弹出窗口是窗口,它们只是禁用了一些功能。通过启用这些功能,您可以使弹出窗口像常规窗口一样。例如,如果您使用

打开一个弹出窗口
window.open('url', 'name', 'width=500, height=500, status=1, toolbar=1, location=1, menubar=1, resizable=1');

该窗口将有一个工具栏、一个 URL 栏、一个状态栏、菜单,并且可以调整大小。它将与任何其他窗口相同。

但是请记住,许多浏览器在某些情况下会阻止 window.open(),如果您指定了很多功能,其中一些浏览器会打开新选项卡。有些人对此也很奇怪。例如,Chrome 默认在弹出窗口中使用滚动条,但如果您明确告诉它在弹出窗口中使用滚动条(使用 scrollbars=1),它将改为在选项卡中打开。

所以基本上没有办法完全确定您的页面将始终在新窗口中打开,因为浏览器处理这些内容的方式各不相同,用户也可以更改设置。如果你必须有一个新窗口,上面的代码可能是你最好的选择,但你可能想看看其他选项。

【讨论】:

    【解决方案3】:

    每个人都完全忽略了使用 Target=_blank 的正当理由,那就是当网站被编写为带有章节/页面的 BOOK 并且目录必须保持完整而不使用 BACK 按钮重新加载上一页(目录)。这样,浏览者只需在阅读完毕后关闭目标页面,他们就会回到目录。 幸运的是,HTML5 已恢复 Target="_blank" 代码,但不幸的是,必须取消选中“阻止弹出窗口”才能使其正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-03
      • 2015-01-16
      • 2020-05-11
      • 2011-02-02
      • 2015-09-25
      • 2012-04-20
      • 2019-04-09
      • 1970-01-01
      相关资源
      最近更新 更多