Browser Gmail不遵守选项卡的浏览器设置

Browser Gmail不遵守选项卡的浏览器设置,browser,gmail,Browser,Gmail,我注意到Gmail没有遵守我的标签浏览器设置。 例如: 在Firefox3.6.10中,我取消选中了选项“当我在新选项卡中打开链接时,立即切换到它”。 但当我按住CTRL键并单击邮件时,它会在一个新选项卡中打开并切换到该选项卡 或 在IE8中,我选择了“总是在新窗口中打开弹出窗口”,但当我按住CTRL键并单击邮件时,它会在新选项卡中打开,而不是在新窗口中打开 我的问题是 是否可以覆盖用户的浏览器设置 第一个选项是可能的,因为此选项仅用于更改链接的默认行为。 gmail中的邮件列表不是普通的链接,

我注意到Gmail没有遵守我的标签浏览器设置。
例如: 在Firefox3.6.10中,我取消选中了选项“当我在新选项卡中打开链接时,立即切换到它”。
但当我按住CTRL键并单击邮件时,它会在一个新选项卡中打开并切换到该选项卡

在IE8中,我选择了“总是在新窗口中打开弹出窗口”,但当我按住CTRL键并单击邮件时,它会在新选项卡中打开,而不是在新窗口中打开

我的问题是

是否可以覆盖用户的浏览器设置

第一个选项是可能的,因为此选项仅用于更改链接的默认行为。 gmail中的邮件列表不是普通的链接,它使用的是javascript


对于第二个示例,该选项不能被网页覆盖,但使用ctrl+click总是意味着在新选项卡中打开,因此它被用户覆盖,而不是页面。

我很好奇ctrl-click和SHIFT-click如何在这些gmail“伪JavaScript链接”上工作(它们显示为忽略浏览器设置),所以我做了一些测试

gmail CTRL-click是否遵守浏览器“新建窗口/弹出窗口”设置(在Firefox中默认为“在新选项卡中打开”,在IE8中默认为“在新窗口中打开”。)如果您将IE8的设置更改为“始终在新选项卡中打开弹出窗口”,那么您将获得与Firefox相同的行为。所以gmail的CTRL-click很可能只是在JavaScript中使用了“window.open()”,其实没什么特别的。我严重怀疑是否有任何方法可以强制使用JavaScript打开新选项卡。正如尤尼扎夫所说,你所观察到的似乎是不可能的

gmail SHIFT click可能使用此方法尝试在JavaScript中始终打开新窗口(而不是新选项卡)(window.open()带有窗口维度):

就焦点而言,我注意到在Firefox中,新的gmail标签总是获得焦点,不管“当我在新标签中打开链接时,立即切换到它”设置(如你所说),但在IE8中,行为似乎是由“创建新标签时始终切换到新标签”设置控制的。我猜这可能只是Firefox和IE的开发人员选择处理window.open()创建的新选项卡的结果,对此你无能为力,除非正如Yonizaf所说,尝试使用window.focus()方法(不过我感觉它在IE中可能不起作用)。事实上,您可以在Firefox和IE8中自己测试这一点(首先禁用弹出窗口拦截器)。我将以下URL粘贴到Firefox和IE8中(禁用“创建新标签时始终切换到新标签”,启用“在新标签中打开弹出窗口”):

在Firefox中,新选项卡在前台打开。在IE8中,新选项卡是在后台打开的


我个人不喜欢这些JavaScript“假链接”,因为你失去了中键单击和右键单击功能,它们会触发弹出窗口拦截器。

与编程无关。我认为这与编程有关。我的问题是“我可以编写JavaScript来覆盖用户的浏览器设置吗?”任何例子?假设我希望始终在新选项卡中打开页面。我如何在JavaScript中实现这一点。对于上面提供的示例,您不需要它。ctrl+click将始终打开一个新选项卡,因为这就是它的设计目的,即使使用您提到的设置。尝试与任何链接。更确切地说,这一点在javascript中可能是不可能的,我在IE8上尝试过gmail,它确实在一个新窗口中打开了邮件。不确定如何获得结果对于焦点示例,可以使用“newwindow=window.open(url);if(window.focus){newwindow.focus()}”,但不需要,因为该选项根本不会影响javascript(即js打开的每个窗口都将获得焦点)
javascript:window.open("http://www.google.com", "_blank")