2010-11-09 16 views
1

我注意到Gmail不遵守标签的浏览器设置。
例如: 在Firefox3.6.10中,我有未选中选项“当我在新标签中打开链接时立即切换到”。
但是,当我对邮件执行CTRL + CLICK时,它会在新选项卡中打开并切换到它。Gmail不遵守标签的浏览器设置

在IE8中,我已经选择了“始终打开弹出窗口在新窗口”,但是当我做CTRL +上点击邮件,它在新标签而不是新窗口中打开。

我的问题是
是否有可能覆盖用户的浏览器设置?

+0

与编程无关。 – leppie 2010-11-09 08:06:55

+0

我认为这与编程有关。我的问题是“我可以编程JavaScript来覆盖用户的浏览器设置吗?” – Varun 2010-11-09 08:14:39

回答

0

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

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

+0

任何示例?假设我想始终在新标签页中打开页面。我将如何在JavaScript中实现这一点。对于上面提供的示例,您不需要它的 – Varun 2010-11-09 09:34:01

+0

。 ctrl + click会一直打开一个新标签,因为这就是它设计的目的,即使是你提到的那个设置。尝试与任何链接。 相反,这一个可能是不可能与JavaScript,我已经尝试IE8上的Gmail,它确实打开邮件在一个新的窗口。不知道你是如何得到你的结果 – Yonizaf 2010-11-09 10:03:01

+0

焦点的例子,你可以使用“newwindow = window.open(url); if(window.focus){newwindow.focus()}”,但它不应该需要,因为这选项不应该影响JavaScript(即,由js打开的每个窗口都将获得焦点) – Yonizaf 2010-11-09 10:17:40

2

我很好奇自己如何在这些gmail“假JavaScript链接”上按住CTRL键并单击SHIFT键(他们出现忽略浏览器设置),所以我做了一些测试。 (在Firefox中,默认为“在新标签页中打开”,在IE8中默认为“在新窗口中打开”)。如果你在浏览器中使用“新窗口/弹出”设置将IE8的设置更改为“始终在新选项卡中打开弹出窗口”,然后获得与Firefox相同的行为。所以gmail的CTRL-点击很可能只是在JavaScript中使用“window.open()”,并且它没有什么特别之处。我严重怀疑有什么方法可以强制使用JavaScript打开新选项卡。就像Yonizaf说的那样,你观察到的似乎不可能。

的Gmail按住Shift键单击可能使用这种方法来尝试始终在JavaScript中打开一个新窗口(和从来没有一个新标签)(window.open()的窗口尺寸): JavaScript open in a new window, not tab

至于焦点的事情,我注意到,在Firefox新的gmail标签总是得到焦点,不管“当我打开新标签中的链接,立即切换到”设置(如你所说),但在IE8中,行为似乎被控制通过“始终在创建时切换到新选项卡”设置。我猜这可能只是Firefox和IE的开发人员如何处理由window.open()创建的新选项卡的结果,并且除了Yonizaf说的尝试使用window.focus()方法(我有一种感觉,它可能无法在IE中工作,但)。事实上,您可以在Firefox和IE8中自己测试(首先禁用弹出窗口拦截器)。我粘贴以下网址到Firefox和IE8(以“随时切换到新的标签页时,他们创造了”禁止,“在新标签打开弹出窗口”已启用):

javascript:window.open("http://www.google.com", "_blank") 

在Firefox中,新的标签是在前台打开。在IE8中,新标签在后台打开。

我个人不喜欢这些JavaScript“虚假链接”,因为您失去了中间点击和右键单击功能,并且它们会触发弹出窗口阻止程序。