2015-07-03 225 views
0

後,我想創建一個Chrome擴展與以下規格:彈出窗口做登錄

  1. 安裝擴展。 - >點擊擴展圖標。
  2. 每次單擊圖標時,後臺腳本都會檢查是否存在訪問令牌。
  3. 如果訪問令牌不存在(這是第一次用戶的情況),將顯示一個單獨的窗口(使用window.open())提示用戶登錄。
  4. 如果存在訪問令牌,則一旦單擊圖標就會顯示一個Chrome擴展彈出窗口。

在我當前的實現中,我沒有在manifest.json中設置默認彈出窗口。如果後臺腳本發現訪問令牌存在,它將使用chrome.browserAction.setPopup設置彈出窗口。但是,只有在我點擊兩次圖標後,彈出窗口才會顯示。我知道這是因爲它會在第一次點擊時設置彈出窗口,然後在第二次點擊時顯示它。但是,有沒有辦法讓它在第一個顯示?

有沒有更好的方法來實現這個邏輯,所以我不必每次都檢測到訪問令牌時要設置彈出窗口,並要求用戶點擊兩次(在我看來這不是非常用戶友好的)?

謝謝!

回答

1

不幸的是,正如你所描述的 - 不是

在某些情況下(包括你的)有talks about enabling you to open a popup programmatically,但他們變得非常複雜,沒有時間表。


然而,在你的情況下,它是一個相對簡單的解決..

你應該儘快致電setPopup你得到您的令牌,以便下次點擊成功。

如果您需要驗證令牌是有效的,這是最好的做彈出打開。如果無效,請在彈出窗口中顯示一個大的「登錄」按鈕,而不是其通常的內容。

+0

如何更改彈出窗口的內容?我可以在不調用setPopup的情況下更改彈出窗口的src嗎? – llams48

+0

將一些腳本放入彈出窗口中,以便更改它(例如,使不同的部分可見)。 – Xan