2017-02-26 62 views
0

我已閱讀文檔,但無法看到背景頁面的目的是什麼。我不是在談論背景腳本(我知道他們是爲了什麼),我指的是背景HTML頁面。背景頁面的用途是什麼?

後臺HTML頁面似乎是擴展中的「不可見」頁面,那麼爲什麼我們需要在HTML中標記一個頁面,如果它不會被看到或使用? 謝謝。

回答

0

Chrome文檔似乎在背景頁面上有更多信息和示例。

從鉻的解釋:

Background Pages
背景頁將被擴展系統 包括每個腳本中的屬性中列出的文件的生成。

如果您需要在背景頁面中指定HTML,則可以使用page屬性代替 。

從MDN的解釋:

background
如果只指定「腳本」,然後一個空白頁將用於 創建的腳本。如果你需要運行

。頁面中的一些特定內容,您可以使用「頁面」選項定義您的 自己的頁面。

如果您使用此屬性,您仍然可以使用「腳本」指定後臺腳本 (如果需要),但也可以在頁面中包含自己的腳本 ,就像在普通網頁中一樣。

更新

Understanding Google Chrome Extensions
後臺網頁

後臺網頁有兩種形式:有標記或無標記。 後臺頁面是我們應用程序的控制器,並且在我們的應用程序一直存在的時候存在 。只要後臺頁面已註冊了一個 事件偵聽器,它們就可以在任何時間被任何選項卡使用 。您可以轉到Chrome的設置 部分中的擴展部分,您會看到一個頁面。

背景頁面通常只有內部的JavaScript (這可能是markable)或iframe幫助引導 一些應用程序的evals。如果您將背景頁面指定爲 html,則它們將以這種方式呈現,但如果您只是在清單文件的「背景」選項中指定腳本 ,Google Chrome將爲您生成一個 。目前,我只是使用其他 的一個選項來組織我的腳本。

如何使用它在manifest文件中,你要麼指定「背景」選項裏面的頁面指令下一個.html頁面,或 下的腳本相同的選項指令。您可以將其設置爲 陣列。

當使用它我發現在3個方案中很有背景的網頁:

  • 當多個標籤消耗你的應用程序,你需要有交互作用的通用網關。
  • 當您需要在內容腳本和頁面動作/瀏覽器動作之間出於任何原因進行通信時。
  • 當您需要在後臺進行的特定任務時。
+0

謝謝。目前還不清楚爲什麼我們需要一個實際的背景HTML頁面。背景*腳本的想法是有道理的(保持長期狀態等),但我仍然看不到背景HTML頁面的用途。任何人都可以解釋爲什麼我們可能需要一個背景HTML頁面,或給(或指向)我們如何使用它的例子? – user3666516

+0

我在帖子中添加了更多信息。我希望這有助於:) – erosman

+0

任何人都可以指向實際使用背景HTML頁面的WebExtension嗎?我用背景HTML頁面嘗試的所有內容都不起作用。 (我已經能夠使用後臺*腳本*運行其他測試WebExtensions。)我瀏覽了所有示例WebExtensions,網址爲https://github.com/mdn/webextensions-examples,但它們都沒有使用後臺HTML頁面(即沒有人將manifest.json中的「background」鍵的「page」屬性設置爲任何內容)。 – user3666516

0

後臺網頁進口許可證在同一背景下的JavaScript文件(要求或進口語言的關鍵字尚未在Firefox Web擴展啓用)。

想象一個名爲main.js的JavaScript文件,它需要調用另一個名爲foo.js的JavaScript文件中的函數。

如何從main.js中的foo.js中導入函數而無需導入或需要函數? (免責聲明:一種方法是擁有一個包含所需的所有腳本的後臺頁面)。

+0

「background」manifest.json鍵的「scripts」部分不包含WebExtension中的後臺腳本嗎?爲什麼需要HTML頁面來包含所需的腳本? (https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/background) – user3666516