chrome.webviewTag

說明

使用 webview 標記主動透過網路載入網路上的即時內容,並嵌入 Chrome 應用程式。應用程式可以控制 webview 的外觀並與網頁內容互動、在內嵌網頁中啟動導覽功能、回應內嵌網頁的錯誤事件等等 (請參閱「使用情況」一節)。

權限

webview

類型

ClearDataOptions

用於決定 clearData 應清除哪些資料的選項。

屬性

  • 開始於

    數字 選填

    清除在這個日期當天或之後累積的資料,以毫秒為單位 (從 Epoch 紀元時間起算,可透過 JavaScript Date 物件的 getTime 方法存取)。如果缺少該值,則預設為 0 (會移除所有瀏覽資料)。

ClearDataTypeSet

一組資料類型。系統會將缺少的屬性解讀為 false

屬性

  • 應用程式快取

    布林值 (選用)

    網站的應用程式快取。

  • 快取

    布林值 (選用)

    Chrome 44 以上版本

    從 Chrome 43 版開始。 瀏覽器的快取。注意:移除資料時,這麼做會清除整個快取,不限於您指定的範圍。

  • Google Cloud 網站上的 Cookie

    布林值 (選用)

    分區的 Cookie。

  • fileSystems

    布林值 (選用)

    網站的檔案系統。

  • indexedDB

    布林值 (選用)

    網站的 IndexedDB 資料。

  • localStorage

    布林值 (選用)

    網站的本機儲存空間資料。

  • persistentCookies

    布林值 (選用)

    Chrome 58 以上版本

    分區的永久 Cookie。

  • sessionCookies

    布林值 (選用)

    Chrome 58 以上版本

    分區的工作階段 Cookie。

  • webSQL

    布林值 (選用)

    網站的 WebSQL 資料。

ContentScriptDetails

Chrome 44 以上版本

要插入的內容指令碼詳細資料。詳情請參閱內容指令碼說明文件。

屬性

  • all_frames

    布林值 (選用)

    如果 all_framestrue,表示 JavaScript 或 CSS 應插入目前頁面的所有頁框。根據預設,all_framesfalse,且 JavaScript 或 CSS 只會插入頂層頁框。

  • css

    要插入相符頁面的 CSS 程式碼或 CSS 檔案清單。這些物件會按照顯示順序插入,在為頁面建構或顯示任何 DOM 之前。

  • exclude_globs

    string[] 選填

    在比對成功後套用,以排除符合此 glob 的網址。用來模擬 @Exclude Greasemonkey 關鍵字。

  • exclude_matches

    string[] 選填

    排除會插入此內容指令碼的網頁。

  • include_globs

    string[] 選填

    在比對後套用,僅納入與這個 glob 相符的網址。用來模擬 @include Greasemonkey 關鍵字。

  • js

    要插入相符網頁的 JavaScript 程式碼或 JavaScript 檔案清單。系統會按照顯示順序插入這些標記。

  • match_about_blank

    布林值 (選用)

    是否在 about:blank 和 about:srcdoc 上插入內容指令碼。只有在網頁的繼承網址與比對欄位中宣告的其中一種模式相符時,系統才會在網頁中插入內容指令碼。繼承網址是指建立頁框或視窗的文件網址,內容指令碼無法插入沙箱頁框。

  • 相符項目

    string[]

    指定要將這個內容指令碼插入哪些網頁。

  • 名稱

    字串

    要插入的內容指令碼名稱。

  • run_at

    RunAt 選用

    它最快會在分頁中插入 JavaScript 或 CSS。預設為「document_idle」。

ContentWindow

訪客視窗的訊息控制代碼。

屬性

  • postMessage

    void

    在嵌入的網頁內容中發布訊息,前提是嵌入的內容會顯示目標來源的網頁。網頁完成載入後,就可以使用這個方法。監聽 contentload 事件,然後呼叫方法。

    來賓可以在收到的訊息活動中張貼訊息至 event.source,向嵌入程式傳送回覆。

    這個 API 和網頁之間用於通訊的 HTML5 postMessage API 相同。嵌入程式可在其影格中新增 message 事件監聽器來監聽回覆。

    postMessage 函式如下所示:

    (message: any,targetOrigin: string)=> {...}

    • 訊息

      不限

      要傳送給訪客的訊息物件。

    • targetOrigin

      字串

      指定要分派事件訪客視窗的來源。

ContextMenuCreateProperties

Chrome 44 以上版本

屬性

  • 已勾選

    布林值 (選用)

    核取方塊或圓形按鈕的初始狀態:選取時為 true,未選取則為 false。一次只能在一組圓形按鈕項目中選取一個圓形按鈕。

  • 情境

    [ContextType,...ContextType[]] 選用

    顯示這個選單項目的背景資訊清單。若未指定,則預設為 ['page']。

  • documentUrlPatterns

    string[] 選填

    可讓您將項目限制為網址符合任一指定模式的文件。(這也適用於影格)。如要進一步瞭解模式格式,請參閱比對模式

  • 已啟用

    布林值 (選用)

    用於啟用或停用內容選單項目。預設值為 true

  • id

    字串 選用

    指派給這個項目的專屬 ID。這是活動網頁的必要項目。不得與這則額外資訊的其他 ID 相同。

  • parentId

    string|number 選填

    父項選單項目的 ID;這會將這個項目設為先前新增項目的子項。

  • targetUrlPatterns

    string[] 選填

    與 documentUrlPatterns 類似,但可讓你根據 img/audio/video 標記的 src 屬性和錨定標記的 href 進行篩選。

  • title

    字串 選用

    要在項目中顯示的文字;除非 type 是「分隔符」,否則此為必要項目。結構定義為「selection」時,您可以使用字串中的 %s 顯示選取的文字。舉例來說,如果此參數值是「 Translate '%s' to Pig Latin」,且使用者選取「cool」一詞,則選取內容選單項目為「將 'cool' to Pig Latin」。

  • 類型

    ItemType 選用

    選單項目的類型。若未指定,則預設為「一般」。

  • onclick

    void optional

    使用者點選選單項目時,要呼叫的函式。

    onclick 函式如下所示:

    (info: OnClickData)=> {...}

    • 資訊

      點選的項目和點擊所在環境的相關資訊。

ContextMenus

Chrome 44 以上版本

屬性

  • onShow

    事件<functionvoidvoid>

    在這個 webview 顯示內容選單前觸發。您可以透過呼叫 event.preventDefault() 停用這個內容選單。

    onShow.addListener 函式如下所示:

    (callback: function)=> {...}

    • 回呼

      功能

      callback 參數如下所示:

      (event: object)=>void

      • event

        物件

        • preventDefault

          void

          呼叫此方法即可避免顯示內容選單。

          preventDefault 函式如下所示:

          ()=> {...}

  • create

    void

    建立新的內容選單項目。請注意,如果建立期間發生錯誤,您可能需要等到建立回呼啟動後才發現錯誤 (詳情請見 runtime.lastError)。

    create 函式如下所示:

    (createProperties: object,callback?: function)=> {...}

    • createProperties

      物件

      用來建立項目的屬性

    • 回呼

      函式選用

      callback 參數如下所示:

      ()=>void

    • returns

      string|number

      新建立項目的 ID。

  • remove

    void

    移除內容選單項目。

    remove 函式如下所示:

    (menuItemId: string|number,callback?: function)=> {...}

    • menuItemId

      string|number

      要移除的內容選單項目 ID。

    • 回呼

      函式選用

      callback 參數如下所示:

      ()=>void

  • removeAll

    void

    移除新增至此 webview 的所有內容選單項目。

    removeAll 函式如下所示:

    (callback?: function)=> {...}

    • 回呼

      函式選用

      callback 參數如下所示:

      ()=>void

  • update

    void

    更新先前建立的內容選單項目。

    update 函式如下所示:

    (id: string|number,updateProperties: object,callback?: function)=> {...}

    • id

      string|number

      要更新的項目 ID。

    • updateProperties

      物件

      要更新的屬性。接受與 create 函式相同的值。

    • 回呼

      函式選用

      callback 參數如下所示:

      ()=>void

ContextMenuUpdateProperties

Chrome 44 以上版本

屬性

  • 已勾選

    布林值 (選用)

    核取方塊或圓形按鈕的狀態:已選取時為 true,未選取則為 false。一次只能在一組圓形按鈕項目中選取一個圓形按鈕。

  • 情境

    [ContextType,...ContextType[]] 選用

    顯示這個選單項目的背景資訊清單。

  • documentUrlPatterns

    string[] 選填

    可讓您將項目限制為網址符合任一指定模式的文件。(這也適用於影格)。如要進一步瞭解模式格式,請參閱比對模式

  • 已啟用

    布林值 (選用)

    用於啟用或停用內容選單項目。

  • parentId

    string|number 選填

    父項選單項目的 ID;這會將這個項目設為先前新增項目的子項。注意:您無法將項目變更為其所屬子系的子項。

  • targetUrlPatterns

    string[] 選填

    與 documentUrlPatterns 類似,但可讓你根據 img/audio/video 標記的 src 屬性和錨定標記的 href 進行篩選。

  • title

    字串 選用

    要在商品中顯示的文字

  • 類型

    ItemType 選用

    選單項目的類型。

  • onclick

    void optional

    使用者點選選單項目時,要呼叫的函式。

    onclick 函式如下所示:

    (info: OnClickData)=> {...}

    • 資訊

      點選的項目和點擊所在環境的相關資訊。

ContextType

Chrome 44 以上版本

選單可顯示的不同情境。指定「all」等同於所有其他背景資訊的組合。

列舉

"selection"

DialogController

附加至 dialog DOM 事件的介面。

屬性

  • cancel

    void

    拒絕對話方塊。等同於在 confirmprompt 對話方塊中點選「取消」。

    cancel 函式如下所示:

    ()=> {...}

  • 正常

    void

    接受對話方塊。等同於在 alertconfirmprompt 對話方塊中按一下確定。

    ok 函式如下所示:

    (response?: string)=> {...}

    • 則回應

      字串 選用

      接受 prompt 對話方塊時提供給訪客的回應字串。

DownloadPermissionRequest

其中包含 download permissionrequest DOM 事件的 request 物件類型。

屬性

  • requestMethod

    字串

    與下載要求相關聯的 HTTP 要求類型 (例如 GET)。

  • 網址

    字串

    要求的下載網址。

  • allow

    void

    請授予權限。

    allow 函式如下所示:

    ()=> {...}

  • deny

    void

    拒絕權限要求。如果未呼叫 allow,這會是預設行為。

    deny 函式如下所示:

    ()=> {...}

FileSystemPermissionRequest

其中包含 filesystem permissionrequest DOM 事件的 request 物件類型。

屬性

  • 網址

    字串

    要求存取本機檔案系統的頁框網址。

  • allow

    void

    請授予權限。

    allow 函式如下所示:

    ()=> {...}

  • deny

    void

    拒絕權限要求。

    deny 函式如下所示:

    ()=> {...}

FindCallbackResults

內含尋找要求的所有結果。

屬性

  • activeMatchOrdinal

    號碼

    目前相符項目的序數。

  • 已取消

    boolean

    指出此尋找要求是否已取消。

  • numberOfMatches

    號碼

    searchText 在網頁上比對符合的次數。

  • selectionRect

    說明螢幕座標中有效相符項目的矩形。

FindOptions

尋找要求的選項。

屬性

  • 後退

    布林值 (選用)

    加上此標記以反向順序尋找相符項目。預設值為 false

  • matchCase

    布林值 (選用)

    用於比對大小寫。預設值為 false

FullscreenPermissionRequest

Chrome 43 以上版本

其中包含 fullscreen permissionrequest DOM 事件的 request 物件類型。

屬性

  • 發跡地

    字串

    啟動全螢幕要求的 webview 內的頁框來源。

  • allow

    void

    請授予權限。

    allow 函式如下所示:

    ()=> {...}

  • deny

    void

    拒絕權限要求。

    deny 函式如下所示:

    ()=> {...}

GeolocationPermissionRequest

其中包含 geolocation permissionrequest DOM 事件的 request 物件類型。

屬性

  • 網址

    字串

    要求存取地理位置資料的頁框網址。

  • allow

    void

    請授予權限。

    allow 函式如下所示:

    ()=> {...}

  • deny

    void

    拒絕權限要求。如果未呼叫 allow,這會是預設行為。

    deny 函式如下所示:

    ()=> {...}

HidPermissionRequest

待處理

其中包含 hid permissionrequest DOM 事件的 request 物件類型。

屬性

  • 網址

    字串

    要求存取 HID API 的頁框網址。

  • allow

    void

    請授予權限。

    allow 函式如下所示:

    ()=> {...}

  • deny

    void

    拒絕權限要求。如果未呼叫 allow,這會是預設行為。

    deny 函式如下所示:

    ()=> {...}

InjectDetails

要插入的指令碼或 CSS 詳細資料。程式碼或檔案屬性必須設定,但兩者不能同時設定。

屬性

  • 代碼

    字串 選用

    要插入的 JavaScript 或 CSS 程式碼。

    警告:使用 code 參數時請務必小心。不當使用可能會導致應用程式受到跨網站指令碼攻擊攻擊。

  • 檔案

    字串 選用

    要插入的 JavaScript 或 CSS 檔案。

InjectionItems

Chrome 44 以上版本

插入項目的類型:程式碼或一組檔案。

屬性

  • 代碼

    字串 選用

    要插入相符網頁的 JavaScript 程式碼或 CSS。

  • 檔案

    string[] 選填

    要插入相符網頁的 JavaScript 或 CSS 檔案清單。這些引數會依照出現在此陣列中的順序插入。

LoadPluginPermissionRequest

其中包含 loadplugin permissionrequest DOM 事件的 request 物件類型。

屬性

  • ID

    字串

    外掛程式的 ID 字串。

  • 名稱

    字串

    外掛程式的顯示名稱。

  • allow

    void

    請授予權限。如果未呼叫 deny,這會是預設行為。

    allow 函式如下所示:

    ()=> {...}

  • deny

    void

    拒絕權限要求。

    deny 函式如下所示:

    ()=> {...}

MediaPermissionRequest

其中包含 media permissionrequest DOM 事件的 request 物件類型。

屬性

  • 網址

    字串

    要求存取使用者媒體的頁框網址。

  • allow

    void

    請授予權限。

    allow 函式如下所示:

    ()=> {...}

  • deny

    void

    拒絕權限要求。如果未呼叫 allow,這會是預設行為。

    deny 函式如下所示:

    ()=> {...}

NewWindow

附加至 newwindow DOM 事件的介面。

屬性

  • 連接

    void

    將要求的目標網頁附加至現有的 webview 元素,

    attach 函式如下所示:

    (webview: object)=> {...}

    • webview

      物件

      應附加目標頁面的 webview 元素。

  • 捨棄

    void

    取消新視窗要求。

    discard 函式如下所示:

    ()=> {...}

PointerLockPermissionRequest

其中包含 pointerLock permissionrequest DOM 事件的 request 物件類型。

屬性

  • lastUnlockedBySelf

    boolean

    要求影格是否為最後用來保留指標鎖定的用戶端。

  • 網址

    字串

    要求指標鎖定的頁框網址。

  • userGesture

    boolean

    是否因為使用者輸入手勢而要求指標鎖定。

  • allow

    void

    請授予權限。

    allow 函式如下所示:

    ()=> {...}

  • deny

    void

    拒絕權限要求。如果未呼叫 allow,這會是預設行為。

    deny 函式如下所示:

    ()=> {...}

SelectionRect

說明螢幕座標中的矩形。

包含語意類似於陣列;也就是說,系統會將 (left, top) 座標視為由矩形包含,但 (left + width, top) 座標則不包含。

屬性

  • 高度

    號碼

    矩形的高度。

  • 號碼

    從螢幕左側邊緣到矩形左側邊緣的距離。

  • 號碼

    從螢幕頂端邊緣到矩形上方邊緣的距離。

  • 寬度

    號碼

    矩形的寬度。

WebRequestEventInterface

Chrome 44 以上版本

這個介面提供訪客網頁上 webRequest 事件的存取權。如要進一步瞭解 webRequest 生命週期和相關概念,請參閱 chrome.webRequest 擴充功能 API。注意:WebView 不支援 chrome.webRequest.onActionIgnored 事件。

為了說明使用情形與擴充功能 webRequest API 的差別,請參閱以下程式碼範例,瞭解符合 *://www.evil.com/* 的網址訪客要求:

webview.request.onBeforeRequest.addListener(
  function(details) { return {cancel: true}; },
  {urls: ["*://www.evil.com/*"]},
  ["blocking"]);

此外,這個介面透過 onRequestonMessage 事件,支援宣告式 webRequest 規則。如需 API 詳細資料,請參閱 declarativeWebRequest

請注意,宣告式 WebView WebRequest 的條件和動作應從其 chrome.webViewRequest.* 對應項目執行個體化。以下程式碼範例會在 WebView myWebview 上,以宣告方式封鎖所有對 "example.com" 提出的要求:

var rule = {
  conditions: [
    new chrome.webViewRequest.RequestMatcher({ url: { hostSuffix: 'example.com' } })
  ],
  actions: [ new chrome.webViewRequest.CancelRequest() ]
};
myWebview.request.onRequest.addRules([rule]);

ZoomMode

Chrome 43 以上版本

定義 webview 中縮放功能的方式。

列舉

"per-origin"
縮放變更會保留在縮放頁面的來源中,也就是說,同一個分區中所有其他 WebView 也會放大到同一個來源。此外,per-origin 縮放變更會以原點儲存,也就是說,導覽至相同來源的其他頁面時,所有頁面都會放大為相同的縮放比例係數。

"per-view"
縮放變更只會在這個 WebView 中生效,在其他 WebView 中縮放的變更不會影響此 WebView 的縮放。此外,瀏覽時 per-view 縮放變更也會重設;瀏覽 WebView 時,一律會根據每個來源的縮放係數 (在分區範圍內) 載入網頁。

"disabled"
停用所有在 WebView 中縮放的功能。內容會還原為預設的縮放等級,並忽略所有嘗試的縮放變更。

屬性

contentWindow

可用來將訊息張貼至訪客頁面的物件參照。

類型

contextMenus

Chrome 44 以上版本

chrome 的 ContextMenus API 類似,但適用於 webview,而非瀏覽器。您可以使用 webview.contextMenus API,將項目新增至 webview 的內容選單。您可以選擇內容選單要新增的物件類型,例如圖片、超連結和網頁。

類型

request

這個介面提供訪客網頁上 webRequest 事件的存取權。

方法

addContentScripts()

Chrome 44 以上版本
chrome.webviewTag.addContentScripts(
  contentScriptList: [ContentScriptDetails,...ContentScriptDetails[]],
)

將內容指令碼插入規則新增至 webview。當 webview 前往符合一或多項規則的網頁時,系統就會插入相關聯的指令碼。您可以透過程式輔助的方式新增規則或更新現有規則。

以下範例會在 webview 中新增兩個規則:「myRule」和「anotherRule」。

webview.addContentScripts([
  {
    name: 'myRule',
    matches: ['http://www.foo.com/*'],
    css: { files: ['mystyles.css'] },
    js: { files: ['jquery.js', 'myscript.js'] },
    run_at: 'document_start'
  },
  {
    name: 'anotherRule',
    matches: ['http://www.bar.com/*'],
    js: { code: "document.body.style.backgroundColor = 'red';" },
    run_at: 'document_end'
  }]);
 ...

// Navigates webview.
webview.src = 'http://www.foo.com';

您可以延遲 addContentScripts 呼叫,直到需要插入指令碼為止。

以下範例說明如何覆寫現有規則。

webview.addContentScripts([{
    name: 'rule',
    matches: ['http://www.foo.com/*'],
    js: { files: ['scriptA.js'] },
    run_at: 'document_start'}]);

// Do something.
webview.src = 'http://www.foo.com/*';
 ...
// Overwrite 'rule' defined before.
webview.addContentScripts([{
    name: 'rule',
    matches: ['http://www.bar.com/*'],
    js: { files: ['scriptB.js'] },
    run_at: 'document_end'}]);

如果 webview 已導覽至來源 (例如 foo.com),並呼叫 webview.addContentScripts 來新增「myRule」,則必須等待下一個導覽功能才能插入指令碼。如要立即插入,executeScript 將正確執行。

即使訪客程序當機、終止,或 webview 重新命名後,規則仍會保留。

詳情請參閱內容指令碼說明文件。

參數

back()

chrome.webviewTag.back(
  callback?: function,
)

如果可以的話,返回上一個記錄項目。等同於 go(-1)

參數

  • 回呼

    函式選用

    Chrome 44 以上版本

    callback 參數如下所示:

    (success: boolean)=>void

    • 成功

      boolean

      指出瀏覽是否成功。

canGoBack()

chrome.webviewTag.canGoBack()

指出是否可往回瀏覽記錄。系統會快取這個函式的狀態,並在每次 loadcommit 之前更新,因此在 loadcommit 中呼叫這個函式的最佳位置。

傳回

  • boolean

canGoForward()

chrome.webviewTag.canGoForward()

指出是否可向前瀏覽記錄。系統會快取這個函式的狀態,並在每次 loadcommit 之前更新,因此在 loadcommit 中呼叫這個函式的最佳位置。

傳回

  • boolean

captureVisibleRegion()

Chrome 50 以上版本
chrome.webviewTag.captureVisibleRegion(
  options?: ImageDetails,
  callback: function,
)

擷取 WebView 的可見區域。

參數

  • 選項

    ImageDetails 選用

  • 回呼

    功能

    callback 參數如下所示:

    (dataUrl: string)=>void

    • dataUrl

      字串

      對所擷取分頁可見區域的圖片進行編碼的資料網址。可指派給 HTML 圖片元素的「src」屬性。

clearData()

chrome.webviewTag.clearData(
  options: ClearDataOptions,
  types: ClearDataTypeSet,
  callback?: function,
)

清除 webview 分區的瀏覽資料。

參數

  • 可決定要清除哪些資料的選項。

  • 要清除的資料類型。

  • 回呼

    函式選用

    callback 參數如下所示:

    ()=>void

executeScript()

chrome.webviewTag.executeScript(
  details: InjectDetails,
  callback?: function,
)

將 JavaScript 程式碼插入訪客網頁。

以下程式碼範例使用指令碼插入,將訪客頁面的背景顏色設為紅色:

webview.executeScript({ code: "document.body.style.backgroundColor = 'red'" });

參數

  • 詳細資料

    要執行的指令碼詳細資料。

  • 回呼

    函式選用

    callback 參數如下所示:

    (result?: any[])=>void

    • 結果

      any[] 選填

      每個插入的影格中指令碼的結果。

find()

chrome.webviewTag.find(
  searchText: string,
  options?: FindOptions,
  callback?: function,
)

發出「從網頁尋找」要求。

參數

  • searchText

    字串

    要在頁面中尋找的字串。

  • 選項

    FindOptions 選用

    尋找要求的選項。

  • 回呼

    函式選用

    callback 參數如下所示:

    (results?: FindCallbackResults)=>void

    • 結果

      內含尋找要求的所有結果。如果回呼函式主體中並未使用 results,則可省略。例如,只有在要求完成時,回呼才會用於識別。

forward()

chrome.webviewTag.forward(
  callback?: function,
)

如果可以的話,往前瀏覽一個記錄項目。等同於 go(1)

參數

  • 回呼

    函式選用

    Chrome 44 以上版本

    callback 參數如下所示:

    (success: boolean)=>void

    • 成功

      boolean

      指出瀏覽是否成功。

getAudioState()

Chrome 62 以上版本
chrome.webviewTag.getAudioState(
  callback: function,
)

查詢音訊狀態。

參數

  • 回呼

    功能

    callback 參數如下所示:

    (audible: boolean)=>void

    • audible

      boolean

getProcessId()

chrome.webviewTag.getProcessId()

傳回訪客網頁目前程序的 Chrome 內部程序 ID,讓嵌入程式知道有多少訪客會在終止程序後受到影響。兩個邀請對象必須屬於同一個應用程式,並具有相同的儲存空間分區 ID,才能共用程序。呼叫為同步性質,並傳回目前程序 ID 的嵌入程式快取概念。程序 ID 與作業系統的程序 ID 不同。

傳回

  • 號碼

getUserAgent()

chrome.webviewTag.getUserAgent()

傳回 webview 用於訪客頁面要求的使用者代理程式字串。

傳回

  • 字串

getZoom()

chrome.webviewTag.getZoom(
  callback: function,
)

取得目前的縮放係數。

參數

  • 回呼

    功能

    callback 參數如下所示:

    (zoomFactor: number)=>void

    • zoomFactor

      號碼

      目前的縮放係數。

getZoomMode()

Chrome 43 以上版本
chrome.webviewTag.getZoomMode(
  callback: function,
)

取得目前的縮放模式。

參數

  • 回呼

    功能

    callback 參數如下所示:

    (ZoomMode: ZoomMode)=>void

    • ZoomMode

      webview 目前的縮放模式。

go()

chrome.webviewTag.go(
  relativeIndex: number,
  callback?: function,
)

使用與目前導覽相關的記錄索引前往記錄項目。如果要求的瀏覽功能不可行,此方法就不會有任何作用。

參數

  • relativeIndex

    號碼

    應導覽 webview 的相對記錄索引。舉例來說,2 的值會盡可能向前瀏覽 2 個記錄項目;值為 -3 時,則會向後瀏覽 3 個項目。

  • 回呼

    函式選用

    callback 參數如下所示:

    (success: boolean)=>void

    • 成功

      boolean

      指出瀏覽是否成功。

insertCSS()

chrome.webviewTag.insertCSS(
  details: InjectDetails,
  callback?: function,
)

將 CSS 插入訪客頁面。

參數

  • 詳細資料

    要插入的 CSS 詳細資料。

  • 回呼

    函式選用

    callback 參數如下所示:

    ()=>void

isAudioMuted()

Chrome 62 以上版本
chrome.webviewTag.isAudioMuted(
  callback: function,
)

查詢是否設為靜音。

參數

  • 回呼

    功能

    callback 參數如下所示:

    (muted: boolean)=>void

    • 已設為靜音。

      boolean

isSpatialNavigationEnabled()

Chrome 71 以上版本
chrome.webviewTag.isSpatialNavigationEnabled(
  callback: function,
)

查詢是否啟用 WebView 空間導覽的查詢。

參數

  • 回呼

    功能

    callback 參數如下所示:

    (enabled: boolean)=>void

    • 已啟用

      boolean

isUserAgentOverridden()

chrome.webviewTag.isUserAgentOverridden()

指出 webview 的使用者代理程式字串是否已由 webviewTag.setUserAgentOverride 覆寫。

loadDataWithBaseUrl()

chrome.webviewTag.loadDataWithBaseUrl(
  dataUrl: string,
  baseUrl: string,
  virtualUrl?: string,
)

以用於相對連結的特定基準網址載入資料網址。另外,您也可以選擇向使用者提供虛擬網址,而非資料網址。

參數

  • dataUrl

    字串

    要載入的資料網址。

  • baseUrl

    字串

    要用於相對連結的基準網址。

  • virtualUrl

    字串 選用

    向使用者顯示的網址 (在網址列中)。

print()

chrome.webviewTag.print()

列印 webview 的內容。這相當於從 webview 本身呼叫以指令碼編寫的列印函式。

reload()

chrome.webviewTag.reload()

重新載入目前的頂層網頁。

removeContentScripts()

Chrome 44 以上版本
chrome.webviewTag.removeContentScripts(
  scriptNameList?: string[],
)

webview 移除內容指令碼。

以下範例移除之前新增的「myRule」。

webview.removeContentScripts(['myRule']);

如要移除所有規則,請呼叫:

webview.removeContentScripts();

參數

  • scriptNameList

    string[] 選填

    列出遭移除的內容指令碼名稱。如果清單沒有任何內容,則所有新增至 webview 的內容指令碼都會遭到移除。

setAudioMuted()

Chrome 62 以上版本
chrome.webviewTag.setAudioMuted(
  mute: boolean,
)

設定 WebView 的音訊靜音狀態。

參數

  • 靜音

    boolean

    靜音音訊值

setSpatialNavigationEnabled()

Chrome 71 以上版本
chrome.webviewTag.setSpatialNavigationEnabled(
  enabled: boolean,
)

設定 WebView 的空間導覽狀態。

參數

  • 已啟用

    boolean

    空間導覽狀態值。

setUserAgentOverride()

chrome.webviewTag.setUserAgentOverride(
  userAgent: string,
)

針對訪客頁面要求覆寫 webview 使用的使用者代理程式字串。覆寫之後,訪客頁面要求套用這個覆寫值時,User-Agent Client Hint 標頭值和 navigator.userAgentData 傳回的值會是空白。

參數

  • userAgent

    字串

    要使用的使用者代理程式字串。

setZoom()

chrome.webviewTag.setZoom(
  zoomFactor: number,
  callback?: function,
)

變更頁面的縮放係數。這項變更的範圍和持續性取決於 WebView 目前的縮放模式 (請參閱 webviewTag.ZoomMode)。

參數

  • zoomFactor

    號碼

    新的縮放係數。

  • 回呼

    函式選用

    callback 參數如下所示:

    ()=>void

setZoomMode()

Chrome 43 以上版本
chrome.webviewTag.setZoomMode(
  ZoomMode: ZoomMode,
  callback?: function,
)

設定 webview 的縮放模式。

參數

  • ZoomMode

    定義在 webview 中處理縮放的方式。

  • 回呼

    函式選用

    callback 參數如下所示:

    ()=>void

stop()

chrome.webviewTag.stop()

如果進行中,則停止載入目前的 webview 導覽。

stopFinding()

chrome.webviewTag.stopFinding(
  action?: "clear"
|"keep"
|"activate"
,
)

結束目前的尋找工作階段 (清除所有醒目顯示) 並取消所有進行中的尋找要求。

參數

  • 動作

     選用

    決定在尋找工作階段結束後,要如何處理使用中的比對項目。clear 會取消醒目顯示進行中的相符項目;keep 會醒目顯示有效的比對項目;activate 會醒目顯示進行中的賽事,並模擬使用者點選該相符項目。預設動作為 keep

terminate()

chrome.webviewTag.terminate()

強制終止訪客網頁的轉譯器程序。如果目前應用程式中的多個 webview 標記共用相同程序,就可能受到影響,但不會影響其他應用程式中的 webview 標記。

活動

close

chrome.webviewTag.close.addListener(
  callback: function,
)

訪客視窗嘗試自行關閉時觸發。

以下程式碼範例會在訪客嘗試自行關閉時將 webview 導覽至 about:blank

webview.addEventListener('close', function() {
  webview.src = 'about:blank';
});

參數

  • 回呼

    功能

    callback 參數如下所示:

    ()=>void

consolemessage

chrome.webviewTag.consolemessage.addListener(
  callback: function,
)

訪客視窗記錄控制台訊息時觸發。

以下程式碼範例會將所有記錄訊息轉送至嵌入程式的控制台,而不必擔心記錄層級或其他屬性。

webview.addEventListener('consolemessage', function(e) {
  console.log('Guest page logged a message: ', e.message);
});

參數

  • 回呼

    功能

    callback 參數如下所示:

    (level: number,message: string,line: number,sourceId: string)=>void

    • level

      號碼

    • 訊息

      字串

    • line

      號碼

    • sourceId

      字串

contentload

chrome.webviewTag.contentload.addListener(
  callback: function,
)

當訪客視窗觸發 load 事件 (例如載入新文件) 時觸發。這「不」包含目前文件或非同步資源載入中的網頁瀏覽。

下列程式碼範例會在網頁載入後,修改訪客 body 元素的預設字型大小:

webview.addEventListener('contentload', function() {
  webview.executeScript({ code: 'document.body.style.fontSize = "42px"' });
});

參數

  • 回呼

    功能

    callback 參數如下所示:

    ()=>void

dialog

chrome.webviewTag.dialog.addListener(
  callback: function,
)

當訪客視窗嘗試透過 window.alertwindow.confirmwindow.prompt 開啟強制回應對話方塊時觸發。

處理此事件會封鎖訪客程序,直到每個事件監聽器回傳,或無法存取 dialog 物件 (如果呼叫 preventDefault()) 為止。

預設行為是取消對話方塊。

參數

  • 回呼

    功能

    callback 參數如下所示:

    (messageType: "alert" 
    |"confirm"
    |"prompt"
    ,messageText: string,dialog: DialogController)=>void

    • messageType

      "alert"
      |"確認"
      |"提示"

    • messageText

      字串

    • 對話方塊

exit

chrome.webviewTag.exit.addListener(
  callback: function,
)

訪客網頁內容轉譯程序結束後觸發。

以下範例程式碼會在訪客網頁當機時顯示接續訊息:

webview.addEventListener('exit', function(e) {
  if (e.reason === 'crash') {
    webview.src = 'data:text/plain,Goodbye, world!';
  }
});

參數

  • 回呼

    功能

    callback 參數如下所示:

    (processID: number,reason: "normal" 
    |"abnormal"
    |"crash"
    |"kill"
    )=>void

    • processID

      號碼

    • 原因

findupdate

chrome.webviewTag.findupdate.addListener(
  callback: function,
)

當有效的尋找要求提供新的尋找結果時觸發。如果找到相符項目,在單一尋找要求中可能會多次發生這種情況。

參數

  • 回呼

    功能

    callback 參數如下所示:

    (searchText: string,numberOfMatches: number,activeMatchOrdinal: number,selectionRect: SelectionRect,canceled: boolean,finalUpdate: string)=>void

    • searchText

      字串

    • numberOfMatches

      號碼

    • activeMatchOrdinal

      號碼

    • selectionRect
    • 已取消

      boolean

    • finalUpdate

      字串

loadabort

chrome.webviewTag.loadabort.addListener(
  callback: function,
)

當頂層載入在未執行的情況下取消時觸發。除非事件預設為禁止,否則控制台會顯示錯誤訊息。

注意:取消資源載入時,即使在上次 loadstop 事件 (如有) 之後所有修訂的載入作業遭到取消,loadabort 事件最終仍會顯示 loadstop 事件。

注意:如果中斷關於網址或 JavaScript 網址的載入,就會觸發 loadabort,接著 webview 會導覽至「about:blank」。

參數

  • 回呼

    功能

    callback 參數如下所示:

    (url: string,isTopLevel: boolean,code: number,reason: "ERR_ABORTED" 
    |"ERR_INVALID_URL"
    |"ERR_DISALLOWED_URL_SCHEME"
    |"ERR_BLOCKED_BY_CLIENT"
    |"ERR_ADDRESS_UNREACHABLE"
    |"ERR_EMPTY_RESPONSE"
    |"ERR_FILE_NOT_FOUND"
    |"ERR_UNKNOWN_URL_SCHEME"
    )=>void

    • 網址

      字串

    • isTopLevel

      boolean

    • 代碼

      號碼

    • 原因

      "ERR_ABORTED"
      |"ERR_INVALID_URL"
      |"ERR_DISALLOWED_URL_SCHEME"
      |"ERR_BLOCKED_BY_CLIENT"
      |"ERR_ADDRESS_UNREACHABLE"
      |"ERR_EMPTY_回應"
      |"ERR_UNHEFILE_NOT 只"

loadcommit

chrome.webviewTag.loadcommit.addListener(
  callback: function,
)

已提交載入時觸發。這包括在目前文件中瀏覽,以及子頁框文件層級載入,但「不」包含非同步資源載入。

參數

  • 回呼

    功能

    callback 參數如下所示:

    (url: string,isTopLevel: boolean)=>void

    • 網址

      字串

    • isTopLevel

      boolean

loadredirect

chrome.webviewTag.loadredirect.addListener(
  callback: function,
)

當頂層載入要求重新導向至其他網址時觸發。

參數

  • 回呼

    功能

    callback 參數如下所示:

    (oldUrl: string,newUrl: string,isTopLevel: boolean)=>void

    • oldUrl

      字串

    • newUrl

      字串

    • isTopLevel

      boolean

loadstart

chrome.webviewTag.loadstart.addListener(
  callback: function,
)

開始載入時觸發。

參數

  • 回呼

    功能

    callback 參數如下所示:

    (url: string,isTopLevel: boolean)=>void

    • 網址

      字串

    • isTopLevel

      boolean

loadstop

chrome.webviewTag.loadstop.addListener(
  callback: function,
)

在訪客頁面 (包括所有子頁框) 中所有頁框層級載入完成時觸發。這包括在目前文件中瀏覽,以及子頁框文件層級載入,但「不」包含非同步資源載入。每次文件層級載入次數從一個 (或多個) 載入到零時,就會觸發這個事件。舉例來說,如果網頁已經完成載入 (也就是說,loadstop 已觸發一次) 會建立新的 iframe,用來載入網頁,接著在 iframe 網頁載入完成時,會觸發第二個 loadstop。一般會在載入廣告的網頁上觀察到這種模式。

注意:取消已提交的載入後,即使自上次 loadstop 事件 (如有) 取消後所有已修訂的載入作業,loadstop 事件最終仍會遵循 loadabort 事件。

參數

  • 回呼

    功能

    callback 參數如下所示:

    ()=>void

newwindow

chrome.webviewTag.newwindow.addListener(
  callback: function,
)

當訪客頁面嘗試開啟新的瀏覽器視窗時觸發。

以下程式碼範例會針對每個要求的新視窗,在嵌入工具中建立並瀏覽新的 webview

webview.addEventListener('newwindow', function(e) {
  var newWebview = document.createElement('webview');
  document.body.appendChild(newWebview);
  e.window.attach(newWebview);
});

參數

  • 回呼

    功能

    callback 參數如下所示:

    (window: NewWindow,targetUrl: string,initialWidth: number,initialHeight: number,name: string,windowOpenDisposition: "ignore" 
    |"save_to_disk"
    |"current_tab"
    |"new_background_tab"
    |"new_foreground_tab"
    |"new_window"
    |"new_popup"
    )=>void

    • 窗戶
    • targetUrl

      字串

    • initialWidth

      號碼

    • initialHeight

      號碼

    • 名稱

      字串

    • windowOpenDisposition

      "ignore"
      |"save_to_disk"
      |"current_tab"
      |"new_background_tab"
      |"new_foreground_tab"
      |"new_window"
      |"new_popup"

permissionrequest

chrome.webviewTag.permissionrequest.addListener(
  callback: function,
)

當訪客頁面需要向嵌入程式要求特殊權限時觸發。

下列程式碼範例會將 webkitGetUserMedia API 存取權授予訪客頁面。請注意,使用此範例程式碼的應用程式必須指定 audioCapture 和/或 videoCapture 資訊清單權限:

webview.addEventListener('permissionrequest', function(e) {
  if (e.permission === 'media') {
    e.request.allow();
  }
});

參數

  • 回呼

    功能

    callback 參數如下所示:

    (permission: "media" 
    |"geolocation"
    |"pointerLock"
    |"download"
    |"loadplugin"
    |"filesystem"
    |"fullscreen"
    |"hid"
    ,request: object)=>void

    • 權限

      "media"
      |"geolocation"
      |"pointerLock"
      |"下載"
      |「載入外掛程式」
      |「檔案系統」
      |「全螢幕」
      |「hid」

    • 申請。

      物件

responsive

chrome.webviewTag.responsive.addListener(
  callback: function,
)

當轉譯訪客網頁內容在系統沒有回應後再次回應時觸發。

以下範例程式碼會在 webview 元素產生回應或無回應時,將其淡入或淡出:

webview.style.webkitTransition = 'opacity 250ms';
webview.addEventListener('unresponsive', function() {
  webview.style.opacity = '0.5';
});
webview.addEventListener('responsive', function() {
  webview.style.opacity = '1';
});

參數

  • 回呼

    功能

    callback 參數如下所示:

    (processID: number)=>void

    • processID

      號碼

sizechanged

chrome.webviewTag.sizechanged.addListener(
  callback: function,
)

透過 autosize 調整嵌入的網路內容時觸發。只有在啟用 autosize 時才會觸發。

參數

  • 回呼

    功能

    callback 參數如下所示:

    (oldWidth: number,oldHeight: number,newWidth: number,newHeight: number)=>void

    • oldWidth

      號碼

    • oldHeight

      號碼

    • newWidth

      號碼

    • newHeight

      號碼

unresponsive

chrome.webviewTag.unresponsive.addListener(
  callback: function,
)

當轉譯訪客網頁內容的程序沒有回應時觸發。如果邀請對象開始再次回應,系統就會產生與相符回應式事件相符的這個事件。

參數

  • 回呼

    功能

    callback 參數如下所示:

    (processID: number)=>void

    • processID

      號碼

zoomchange

chrome.webviewTag.zoomchange.addListener(
  callback: function,
)

頁面縮放變更時觸發。

參數

  • 回呼

    功能

    callback 參數如下所示:

    (oldZoomFactor: number,newZoomFactor: number)=>void

    • oldZoomFactor

      號碼

    • newZoomFactor

      號碼