2010-11-09 57 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「虛假鏈接」,因爲您失去了中間點擊和右鍵單擊功能,並且它們會觸發彈出窗口阻止程序。