Javascript 谷歌浏览器;“打开窗口”;解决办法?

Javascript 谷歌浏览器;“打开窗口”;解决办法?,javascript,google-chrome,Javascript,Google Chrome,我一直在开发一个web应用程序,其中一部分我需要打开一个新窗口。我在所有浏览器上都能做到这一点,我的关键是谷歌浏览器 Chrome似乎忽略了导致我出现问题的窗口功能,我正在努力解决的问题是,我需要地址栏在新窗口中可编辑。FF,IE,Safari和Opera做得很好,Chrome不行 我的代码: function popitup(url) { newwindow=window.open(url, 'name', 'toolbar=1,scrollbars=1,location=1,status

我一直在开发一个web应用程序,其中一部分我需要打开一个新窗口。我在所有浏览器上都能做到这一点,我的关键是谷歌浏览器

Chrome似乎忽略了导致我出现问题的窗口功能,我正在努力解决的问题是,我需要地址栏在新窗口中可编辑。FF,IE,Safari和Opera做得很好,Chrome不行

我的代码:

function popitup(url) {
  newwindow=window.open(url, 'name', 'toolbar=1,scrollbars=1,location=1,statusbar=0,menubar=1,resizable=1,width=800,height=600');
  if (window.focus) {
    newwindow.focus()
  }
  return false;
}

location=1
零件应启用可编辑的位置栏

作为补充说明,您可以从脚本中删除
language=“javascript”
属性,因为它现在已被弃用

更新


statusbar=1
设置为正确的参数
status=1
对我来说很有效

我认为目前没有javascript方法强制chrome以tab模式作为新窗口打开。已按此处所示提交了一张票证。但用户可以点击左上角的chrome图标并选择“显示为选项卡”,然后地址栏将变为可编辑状态

在中提出了一个类似的问题。

这对我很有用:

newwindow = window.open(url, "_blank", "resizable=yes, scrollbars=yes, titlebar=yes, width=800, height=900, top=10, left=10");

使用window.open时不要为目标窗口命名(“,”名称“,…)


如果你这样做了,你只能打开一次。使用_blank等代替。

菜单栏必须为否或0,才能在新窗口中打开Google Chrome而不是tab。

其他答案已过时。Chrome for
window.open的行为取决于调用它的位置。另见

当从通过用户操作(例如onclick事件)触发的处理程序调用
window.open
时,其行为类似于
,默认情况下在新选项卡中打开。但是,如果在其他地方调用了
window.open
,Chrome将忽略其他参数,并始终打开带有不可编辑地址栏的新窗口


这看起来像是某种安全措施,尽管其背后的原理还不完全清楚。

据我所知,如果您引用本地主机(例如,您正在本地开发一个站点),chrome无法正常工作

这项工作:

var windowObjectReference;
var strWindowFeatures = "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes";

function openRequestedPopup() {
  windowObjectReference = window.open("http://www.cnn.com/", "CNN_WindowName", strWindowFeatures);
}
这行不通

var windowObjectReference;
var strWindowFeatures = "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes";

function openRequestedPopup() {
  windowObjectReference = window.open("http://localhost/webappFolder/MapViewer.do", "CNN_WindowName", strWindowFeatures);
}
从加载时,这也不起作用


我也有同样的问题,Chrome不会从代码(而不是处理程序)打开新窗口。
我找到了这个解决方案:

setTimeout(function () {
    window.open(
        url, 'name', 'toolbar=1, scrollbars=1, location=1,
        statusbar=0, menubar=1, resizable=1, width=800, height=600'
    );
}, 1);

为什么2021年的情况仍然如此复杂? 对我来说,我想在一个新的chrome窗口全屏打开,所以我使用了以下选项:

window.open("http://my.url.com", "", "fullscreen=yes");


这就像打开一个新的chrome窗口一样有效。如果没有最后的选项,它只会打开一个新的选项卡

Wow-这太奇怪了。我想是某种被误导的“安全”功能吧。是的,这很奇怪,需要一些努力才能走到这一步!这可能不是你想听到的,但不要在新窗口/选项卡中打开内容。如果用户想要一个新窗口,他们可以要求他们的浏览器来做。谢谢jamesdlin,它实际上是一个测试浏览器大小的web开发工具,所以它有点必要:)检查这个问题谢谢你的回复Scunlife:)我刚刚尝试了这些设置,位置栏显示了URL,但仍然无法编辑:(谢谢-我缺少参数的status=1部分,这使得chrome无法将其视为一个功能齐全的窗口。open()。当我将其放入时,它开始在选项卡中打开窗口。如果在打开窗口时未指定和窗口属性,它应该将其放入选项卡中。相反,如果希望打开窗口而不是选项卡,请至少指定一个窗口属性。OP的问题不是作为新窗口或选项卡打开。在chrome中,OP是打开一个新窗口,而不是打开一个选项卡t位置栏是灰色的。地址栏只有在新窗口为“显示为选项卡”时才可编辑。感谢您的输入丁格尔,我可能能够以某种方式解决此问题;)@McBonio,请使用您的解决方法更新帖子,谢谢。这取决于从何处调用,请参见下面的答案。对于命名窗口,地址栏不适用于我(这是打开一个新窗口,而不是打开一个现有窗口),不管从@jeroe调用它。这个解决方案在Google Chrome 29/Opera 20中工作,尽管在这两个浏览器中定位窗口(使用“left=XX&top=YY”)并没有按预期工作。(假设这两个浏览器都有bug)你知道有没有关于这个的官方文档吗?@cezar这不是一个新问题。请注意“我找到了这个解决方案”的部分。这会创建一个无限循环。此外,它会打开一个新选项卡,而不是一个新窗口。对不起,我对两个函数(SetInterval和SetTimeout)感到困惑,这是同时适用于两者的解决方案,但SetInterval是其实无限循环。由于使用SetInterval函数的resut解决方案是错误的,请尝试使用SetTimeout函数来使用此解决方案
window.open("http://my.url.com", "", "fullscreen=yes");