chrome.webviewTag

Описание

Используйте тег webview, чтобы загружать контент из интернета и встраивать его в приложение Chrome. Приложение может управлять внешним видом тега webview и взаимодействовать с веб-контентом, инициировать навигацию на встроенной веб-странице, реагировать на ошибки, которые на ней возникают, и выполнять другие действия (см. раздел Использование).

Разрешения

webview

Доступность

Только для ChromeOS

Типы

ClearDataOptions

Параметры, определяющие, какие данные должны быть удалены с помощью clearData.

Свойства

  • с

    number (необязательно)

    Удалить данные, накопленные в эту дату или после нее. Дата указывается в миллисекундах, прошедших с начала эпохи (доступ к ней можно получить с помощью метода getTime объекта JavaScript Date). Если значение не задано, по умолчанию используется 0 (удаляются все данные о работе в браузере).

ClearDataTypeSet

Набор типов данных. Отсутствующие свойства интерпретируются как false.

Свойства

  • appcache

    Логическое значение (необязательно)

    Кеши приложений сайтов.

  • Кешировать

    Логическое значение (необязательно)

    Chrome 44 и более поздних версий;

    Начиная с Chrome 43. Кеш браузера. Примечание. При удалении данных очищается весь кеш, а не только за указанный период.

  • печенье

    Логическое значение (необязательно)

    Файлы cookie раздела.

  • fileSystems

    Логическое значение (необязательно)

    Файловые системы сайтов.

  • indexedDB

    Логическое значение (необязательно)

    Данные IndexedDB сайтов.

  • localStorage

    Логическое значение (необязательно)

    Данные локального хранилища сайтов.

  • persistentCookies

    Логическое значение (необязательно)

    Chrome 58 и более поздних версий;

    Постоянные файлы cookie раздела.

  • sessionCookies

    Логическое значение (необязательно)

    Chrome 58 и более поздних версий;

    Файлы cookie сеанса раздела.

  • webSQL

    Логическое значение (необязательно)

    Данные WebSQL сайтов.

ContentScriptDetails

Chrome 44 и более поздних версий;

Сведения о скрипте для содержимого, который нужно внедрить. Подробную информацию можно найти в документации по скриптам контента.

Свойства

  • all_frames

    Логическое значение (необязательно)

    Если all_frames имеет значение true, это означает, что JavaScript или CSS должны быть внедрены во все фреймы текущей страницы. По умолчанию для all_frames задано значение false, и код JavaScript или CSS вставляется только в верхний фрейм.

  • css

    InjectionItems необязательный

    Код CSS или список файлов CSS, которые будут вставлены на соответствующие страницы. Они внедряются в том порядке, в котором указаны, до создания или показа DOM для страницы.

  • exclude_globs

    string[] необязательно

    Применяется после сопоставления, чтобы исключить URL, соответствующие этому шаблону. Имитирует ключевое слово @exclude в Greasemonkey.

  • exclude_matches

    string[] необязательно

    Исключает страницы, в которые в противном случае был бы внедрен этот скрипт.

  • include_globs

    string[] необязательно

    Применяется после сопоставления, чтобы включить только те URL, которые также соответствуют этому шаблону. Имитирует ключевое слово @include Greasemonkey.

  • js

    InjectionItems необязательный

    Код JavaScript или список файлов JavaScript, которые будут вставлены на соответствующие страницы. Они добавляются в том порядке, в котором указаны.

  • match_about_blank

    Логическое значение (необязательно)

    Указывает, нужно ли вставлять скрипт контента на страницах about:blank и about:srcdoc. Скрипты контента будут внедряться только на страницы, URL которых соответствует одному из шаблонов, указанных в поле matches. URL наследования – это URL документа, в котором был создан фрейм или окно. Скрипты контента нельзя вставлять в изолированные фреймы.

  • соответствует

    string[]

    Указывает, на какие страницы будет внедрен этот скрипт контента.

  • name

    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

      string

      Указывает, каким должно быть происхождение гостевого окна, чтобы событие было отправлено.

ContextMenuCreateProperties

Chrome 44 и более поздних версий;

Свойства

  • выбрано

    Логическое значение (необязательно)

    Начальное состояние флажка или переключателя: true для выбранного и false для невыбранного. В группе переключателей можно выбрать только один вариант.

  • контексты

    [ContextType, ...ContextType[]] необязательный

    Список контекстов, в которых будет появляться этот пункт меню. Если не указано другое, по умолчанию используется ['page'].

  • documentUrlPatterns

    string[] необязательно

    Позволяет ограничить применение элемента только документами, URL которых соответствует одному из заданных шаблонов. Это также относится к фреймам. Подробнее о шаблонах соответствия…

  • включено

    Логическое значение (необязательно)

    Указывает, включен ли этот пункт контекстного меню. Значение по умолчанию – true.

  • id

    Строка (необязательно)

    Уникальный идентификатор, который будет назначен этому объекту. Обязательно для страниц мероприятий. Не может совпадать с другим идентификатором этого расширения.

  • parentId

    string | number необязательный

    Идентификатор родительского пункта меню. Позволяет сделать пункт дочерним по отношению к ранее добавленному пункту.

  • targetUrlPatterns

    string[] необязательно

    Похоже на documentUrlPatterns, но позволяет фильтровать по атрибуту src тегов img/audio/video и href тегов anchor.

  • название

    Строка (необязательно)

    Текст, который будет показываться в элементе. Это обязательный параметр, если только type не имеет значение separator. Если контекст – selection, вы можете использовать в строке %s, чтобы показать выбранный текст. Например, если значение этого параметра – "Перевести '%s' на поросячью латынь", а пользователь выбирает слово "круто", то пункт контекстного меню для выбранного фрагмента будет выглядеть так: "Перевести 'круто' на поросячью латынь".

  • тип

    ItemType необязательный

    Тип пункта меню. Если не указано другое, по умолчанию используется normal.

  • onclick

    void optional

    Функция, которая будет вызвана при нажатии на пункт меню.

    Функция onclick выглядит следующим образом:

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

    • информация

      Информация об элементе, на который нажал пользователь, и контексте, в котором это произошло.

ContextMenus

Chrome 44 и более поздних версий;

Свойства

  • onShow

    Event<functionvoidvoid>

    Срабатывает перед показом контекстного меню для этого элемента webview. Чтобы отключить контекстное меню, вызовите метод event.preventDefault().

    Функция onShow.addListener выглядит следующим образом:

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

    • обратный вызов

      function

      Параметр callback выглядит следующим образом:

      (event: object) => void

      • event

        Объект

        • preventDefault

          void

          Вызовите этот метод, чтобы контекстное меню не показывалось.

          Функция preventDefault выглядит следующим образом:

          () => {...}

  • create

    void

    Создает новый пункт контекстного меню. Если при создании произойдет ошибка, вы можете не узнать об этом, пока не сработает обратный вызов (подробности будут в runtime.lastError).

    Функция create выглядит следующим образом:

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

    • createProperties

      Объект

      свойства, используемые для создания объекта;

    • обратный вызов

      function необязательно

      Параметр callback выглядит следующим образом:

      () => void

    • Возвращает

      string | number

      Идентификатор нового объекта.

  • удалить

    void

    Удаляет пункт контекстного меню.

    Функция remove выглядит следующим образом:

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

    • menuItemId

      string | number

      Идентификатор удаляемого пункта контекстного меню.

    • обратный вызов

      function необязательно

      Параметр callback выглядит следующим образом:

      () => void

  • removeAll

    void

    Удаляет все пункты контекстного меню, добавленные в это расширение webview.

    Функция removeAll выглядит следующим образом:

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

    • обратный вызов

      function необязательно

      Параметр callback выглядит следующим образом:

      () => void

  • update

    void

    Обновляет ранее созданный пункт контекстного меню.

    Функция update выглядит следующим образом:

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

    • id

      string | number

      Идентификатор объекта, который нужно обновить.

    • updateProperties

      Объект

      Свойства, которые нужно обновить. Принимает те же значения, что и функция create.

    • обратный вызов

      function необязательно

      Параметр callback выглядит следующим образом:

      () => void

ContextMenuUpdateProperties

Chrome 44 и более поздних версий;

Свойства

  • выбрано

    Логическое значение (необязательно)

    Состояние флажка или переключателя: true для выбранного и false для невыбранного. В группе переключателей можно выбрать только один вариант.

  • контексты

    [ContextType, ...ContextType[]] необязательный

    Список контекстов, в которых будет появляться этот пункт меню.

  • documentUrlPatterns

    string[] необязательно

    Позволяет ограничить применение элемента только документами, URL которых соответствует одному из заданных шаблонов. Это также относится к фреймам. Подробнее о шаблонах соответствия…

  • включено

    Логическое значение (необязательно)

    Указывает, включен ли этот пункт контекстного меню.

  • parentId

    string | number необязательный

    Идентификатор родительского пункта меню. Позволяет сделать пункт дочерним по отношению к ранее добавленному пункту. Примечание. Вы не можете сделать объект дочерним по отношению к одному из его собственных дочерних объектов.

  • targetUrlPatterns

    string[] необязательно

    Похоже на documentUrlPatterns, но позволяет фильтровать по атрибуту src тегов img/audio/video и href тегов anchor.

  • название

    Строка (необязательно)

    Текст, который будет показываться в элементе.

  • тип

    ItemType необязательный

    Тип пункта меню.

  • onclick

    void optional

    Функция, которая будет вызвана при нажатии на пункт меню.

    Функция onclick выглядит следующим образом:

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

    • информация

      Информация об элементе, на который нажал пользователь, и контексте, в котором это произошло.

ContextType

Chrome 44 и более поздних версий;

Различные контексты, в которых может появляться меню. Значение "all" эквивалентно комбинации всех остальных контекстов.

Перечисление

"all"

"page"

"frame"

"selection"

"link"

"editable"

"image"

"video"

"audio"

DialogController

Интерфейс, прикрепленный к событиям DOM dialog.

Свойства

  • отмена

    void

    Отклонить диалог. Аналогично нажатию кнопки "Отмена" в диалоговом окне confirm или prompt.

    Функция cancel выглядит следующим образом:

    () => {...}

  • ОК

    void

    Подтвердите действие в диалоговом окне. Аналогично нажатию кнопки "ОК" в диалоговом окне alert, confirm или prompt.

    Функция ok выглядит следующим образом:

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

    • Ответ

      Строка (необязательно)

      Строка ответа, которая будет показана гостю при принятии диалогового окна prompt.

DialogMessageType

Chrome 141 и более поздних версий

Тип модального диалогового окна, запрошенного гостем.

Перечисление

"alert"

"confirm"

"prompt"

DownloadPermissionRequest

Тип объекта request, который сопровождает событие DOM permissionrequest типа download.

Свойства

  • requestMethod

    string

    Тип HTTP-запроса (например, GET), связанный с запросом на скачивание.

  • url

    string

    Запрошенный URL для скачивания.

  • allow

    void

    Предоставьте разрешение.

    Функция allow выглядит следующим образом:

    () => {...}

  • deny

    void

    Отклонить запрос на разрешение. Это режим работы по умолчанию, если не вызывается allow.

    Функция deny выглядит следующим образом:

    () => {...}

ExitReason

Chrome 141 и более поздних версий

Строка, указывающая причину выхода.

Перечисление

"normal"

"abnormal"

"crashed"

"killed"

"oom killed"

"oom"

"не удалось запустить"

"integrity failure"

FileSystemPermissionRequest

Тип объекта request, который сопровождает событие DOM permissionrequest типа filesystem.

Свойства

  • url

    string

    URL фрейма, запрашивающего доступ к локальной файловой системе.

  • allow

    void

    Предоставьте разрешение.

    Функция allow выглядит следующим образом:

    () => {...}

  • deny

    void

    Отклонить запрос на разрешение.

    Функция deny выглядит следующим образом:

    () => {...}

FindCallbackResults

Содержит все результаты поискового запроса.

Свойства

  • activeMatchOrdinal

    число

    Порядковый номер текущего совпадения.

  • отменено

    Логическое значение

    Указывает, был ли отменен этот запрос на поиск.

  • numberOfMatches

    число

    Количество совпадений с searchText на странице.

  • selectionRect

    Описывает прямоугольник вокруг активного совпадения в экранных координатах.

FindOptions

Параметры поискового запроса.

Свойства

  • назад

    Логическое значение (необязательно)

    Пометка для поиска совпадений в обратном порядке. Значение по умолчанию: false.

  • matchCase

    Логическое значение (необязательно)

    Флаг для сопоставления с учетом регистра. Значение по умолчанию: false.

FullscreenPermissionRequest

Chrome 43 и более поздних версий;

Тип объекта request, который сопровождает событие DOM permissionrequest типа fullscreen.

Свойства

  • происхождение

    string

    Источник фрейма в webview, который инициировал запрос на полноэкранный режим.

  • allow

    void

    Предоставьте разрешение.

    Функция allow выглядит следующим образом:

    () => {...}

  • deny

    void

    Отклонить запрос на разрешение.

    Функция deny выглядит следующим образом:

    () => {...}

GeolocationPermissionRequest

Тип объекта request, который сопровождает событие DOM permissionrequest типа geolocation.

Свойства

  • url

    string

    URL фрейма, запрашивающего доступ к данным геолокации.

  • allow

    void

    Предоставьте разрешение.

    Функция allow выглядит следующим образом:

    () => {...}

  • deny

    void

    Отклонить запрос на разрешение. Это режим работы по умолчанию, если не вызывается allow.

    Функция deny выглядит следующим образом:

    () => {...}

HidPermissionRequest

Chrome 125 и более поздних версий

Тип объекта request, который сопровождает событие DOM permissionrequest hid.

Свойства

  • url

    string

    URL фрейма, запрашивающего доступ к HID API.

  • allow

    void

    Предоставьте разрешение.

    Функция allow выглядит следующим образом:

    () => {...}

  • deny

    void

    Отклонить запрос на разрешение. Это режим работы по умолчанию, если не вызывается allow.

    Функция deny выглядит следующим образом:

    () => {...}

InjectDetails

Сведения о скрипте или CSS, которые нужно внедрить. Необходимо указать либо код, либо свойство файла, но не оба одновременно.

Свойства

  • код

    Строка (необязательно)

    Код JavaScript или CSS для вставки.

    Внимание! Будьте осторожны при использовании параметра code. Неправильное использование этого метода может сделать приложение уязвимым для межсайтового скриптинга.

  • файл

    Строка (необязательно)

    Файл JavaScript или CSS для внедрения.

InjectionItems

Chrome 44 и более поздних версий;

Тип внедренного объекта: код или набор файлов.

Свойства

  • код

    Строка (необязательно)

    Код JavaScript или CSS, который будет внедрен на соответствующие страницы.

  • файлы

    string[] необязательно

    Список файлов JavaScript или CSS, которые будут внедрены на соответствующие страницы. Они добавляются в том порядке, в котором указаны в массиве.

LoadAbortReason

Chrome 141 и более поздних версий

Строка, указывающая тип прерывания. Обратная совместимость этой строки между выпусками не гарантируется. Не анализируйте его и не выполняйте никаких действий на основе его содержания. В некоторых случаях могут возникать ошибки, не указанные в этом списке.

Перечисление

"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"

LoadPluginPermissionRequest

Тип объекта request, который сопровождает событие DOM permissionrequest типа loadplugin.

Свойства

  • identifier

    string

    Строка идентификатора плагина.

  • name

    string

    Отображаемое название плагина.

  • allow

    void

    Предоставьте разрешение. Это режим работы по умолчанию, если deny не вызывается.

    Функция allow выглядит следующим образом:

    () => {...}

  • deny

    void

    Отклонить запрос на разрешение.

    Функция deny выглядит следующим образом:

    () => {...}

MediaPermissionRequest

Тип объекта request, который сопровождает событие DOM permissionrequest типа media.

Свойства

  • url

    string

    URL фрейма, запрашивающего доступ к медиафайлам пользователя.

  • allow

    void

    Предоставьте разрешение.

    Функция allow выглядит следующим образом:

    () => {...}

  • deny

    void

    Отклонить запрос на разрешение. Это режим работы по умолчанию, если не вызывается allow.

    Функция deny выглядит следующим образом:

    () => {...}

NewWindow

Интерфейс, прикрепленный к событиям DOM newwindow.

Свойства

  • прикрепить

    void

    Прикрепите целевую страницу к существующему элементу webview.

    Функция attach выглядит следующим образом:

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

    • компонент webview

      Объект

      Элемент webview, к которому должна быть прикреплена целевая страница.

  • Не вносить

    void

    Отменить запрос на открытие нового окна.

    Функция discard выглядит следующим образом:

    () => {...}

PermissionType

Chrome 141 и более поздних версий

Тип запрашиваемого разрешения.

Перечисление

"media"

"geolocation"

"pointerLock"

"download"

"loadplugin"

"filesystem"

"fullscreen"

"hid"

PointerLockPermissionRequest

Тип объекта request, который сопровождает событие DOM permissionrequest типа pointerLock.

Свойства

  • lastUnlockedBySelf

    Логическое значение

    Указывает, был ли запрашивающий фрейм последним клиентом, удерживающим блокировку указателя.

  • url

    string

    URL фрейма, запрашивающего блокировку указателя.

  • userGesture

    Логическое значение

    Запрашивалась ли блокировка указателя в результате жеста пользователя.

  • allow

    void

    Предоставьте разрешение.

    Функция allow выглядит следующим образом:

    () => {...}

  • deny

    void

    Отклонить запрос на разрешение. Это режим работы по умолчанию, если не вызывается allow.

    Функция deny выглядит следующим образом:

    () => {...}

SelectionRect

Описывает прямоугольник в экранных координатах.

Семантика включения аналогична массиву, то есть считается, что координата (left, top) содержится в прямоугольнике, а координата (left + width, top) – нет.

Свойства

  • высота

    число

    Высота прямоугольника.

  • влево

    число

    Расстояние от левого края экрана до левого края прямоугольника.

  • верхняя

    число

    Расстояние от верхнего края экрана до верхнего края прямоугольника.

  • ширина

    число

    Ширина прямоугольника.

StopFindingAction

Chrome 141 и более поздних версий

Определяет, что делать с активным совпадением после завершения сеанса поиска. clear – выделение активного совпадения будет снято; keep – выделение активного совпадения будет сохранено; activate – выделение активного совпадения будет сохранено, и будет сымитирован клик пользователя по этому совпадению. Действие по умолчанию: keep.

Перечисление

"clear"

"keep"

"activate"

WebRequestEventInterface

Chrome 44 и более поздних версий;

Интерфейс, предоставляющий доступ к событиям webRequest на гостевой странице. Подробную информацию о жизненном цикле webRequest и связанных с ним концепциях можно найти в документации по API расширений chrome.webRequest. Примечание. Событие chrome.webRequest.onActionIgnored не поддерживается для компонентов WebView.

Чтобы проиллюстрировать, чем использование отличается от API webRequest для расширений, рассмотрим следующий пример кода, который блокирует любые гостевые запросы для URL, соответствующих *://www.evil.com/*:

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

Кроме того, этот интерфейс поддерживает декларативные правила webRequest через события onRequest и onMessage. Подробные сведения об API приведены в статье declarativeWebRequest.

Обратите внимание, что условия и действия для декларативных веб-запросов webview должны быть созданы из их аналогов chrome.webViewRequest.*. В примере кода ниже показано, как декларативно заблокировать все запросы к "example.com" в компоненте WebView myWebview.

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

WindowOpenDisposition

Chrome 141 и более поздних версий

Запрошенное расположение нового окна.

Перечисление

"ignore"

"save_to_disk"

"current_tab"

"new_background_tab"

"new_foreground_tab"

"new_window"

"new_popup"

ZoomMode

Chrome 43 и более поздних версий;

Определяет, как обрабатывается масштабирование в webview.

Перечисление

per-origin
Изменения масштаба будут сохраняться в источнике масштабируемой страницы, то есть все остальные компоненты WebView в том же разделе, которые переходят к тому же источнику, также будут масштабироваться. Кроме того, per-originизменения масштаба сохраняются для источника, то есть при переходе на другие страницы в том же источнике они будут масштабироваться с тем же коэффициентом.

per-view
Изменения масштаба применяются только к текущему компоненту WebView и не влияют на другие. Кроме того, per-viewизменения масштаба сбрасываются при навигации. При переходе в компонент WebView страницы всегда будут загружаться с коэффициентами масштабирования для каждого источника (в пределах раздела).

"disabled"
Отключает масштабирование в WebView. Контент будет показан в масштабе по умолчанию, а все попытки изменить масштаб будут игнорироваться.

Свойства

contentWindow

Ссылка на объект, которую можно использовать для публикации сообщений на гостевой странице.

Тип

contextMenus

Chrome 44 и более поздних версий;

Похож на ContextMenus API в Chrome, но применяется к webview, а не к браузеру. Используйте API webview.contextMenus, чтобы добавить элементы в контекстное меню webview. Вы можете выбрать, к каким типам объектов будут применяться дополнения контекстного меню, например к изображениям, гиперссылкам и страницам.

Тип

request

Интерфейс, предоставляющий доступ к событиям webRequest на гостевой странице.

Методы

addContentScripts()

Chrome 44 и более поздних версий;
chrome.webviewTag.addContentScripts(
  contentScriptList: [ContentScriptDetails, ...ContentScriptDetails[]],
)
: void

Добавляет правила внедрения скрипта контента в 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,
)
: void

Переход на одну запись назад в истории, если это возможно. Аналогичен элементу go(-1).

Параметры

  • обратный вызов

    function необязательно

    Chrome 44 и более поздних версий;

    Параметр callback выглядит следующим образом:

    (success: boolean) => void

    • выполнено

      Логическое значение

      Указывает, была ли навигация успешной.

canGoBack()

chrome.webviewTag.canGoBack(): boolean

Указывает, можно ли перейти назад по истории. Состояние этой функции кешируется и обновляется перед каждым вызовом loadcommit, поэтому лучше всего вызывать ее в loadcommit.

Возвраты

  • Логическое значение

canGoForward()

chrome.webviewTag.canGoForward(): boolean

Указывает, можно ли перейти вперед по истории. Состояние этой функции кешируется и обновляется перед каждым вызовом loadcommit, поэтому лучше всего вызывать ее в loadcommit.

Возвраты

  • Логическое значение

captureVisibleRegion()

Chrome 50 и более поздних версий;
chrome.webviewTag.captureVisibleRegion(
  options?: ImageDetails,
  callback: function,
)
: void

Записывает видимую область компонента WebView.

Параметры

  • Параметры

    ImageDetails необязательный

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (dataUrl: string) => void

    • dataUrl

      string

      URL данных, который кодирует изображение видимой области захваченной вкладки. Может быть присвоен свойству src элемента HTML Image для показа.

clearData()

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

Удаляет данные о работе в браузере для раздела webview.

Параметры

  • Параметры

    Параметры, определяющие, какие данные нужно удалить.

  • типы

    Типы данных, которые нужно удалить.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    () => void

executeScript()

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

Добавление кода JavaScript на гостевую страницу.

В следующем образце кода используется внедрение скрипта, чтобы задать красный цвет фона гостевой страницы:

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

Параметры

  • подробные сведения

    Сведения о скрипте, который нужно запустить.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (result?: any[]) => void

    • Результат

      any[] необязательный

      Результат выполнения скрипта в каждом внедренном фрейме.

find()

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

Инициирует запрос на поиск по странице.

Параметры

  • searchText

    string

    Строка, которую нужно найти на странице.

  • Параметры

    FindOptions необязательный

    Параметры поискового запроса.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (results?: FindCallbackResults) => void

    • результаты

      FindCallbackResults необязательный

      Содержит все результаты поискового запроса. results можно опустить, если он не используется в теле функции обратного вызова, например если обратный вызов используется только для определения момента завершения запроса на поиск.

forward()

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

Переход на одну запись вперед в истории, если это возможно. Аналогичен элементу go(1).

Параметры

  • обратный вызов

    function необязательно

    Chrome 44 и более поздних версий;

    Параметр callback выглядит следующим образом:

    (success: boolean) => void

    • выполнено

      Логическое значение

      Указывает, была ли навигация успешной.

getAudioState()

Chrome 62 и более поздних версий
chrome.webviewTag.getAudioState(
  callback: function,
)
: void

Запрашивает состояние звука.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (audible: boolean) => void

    • Audible

      Логическое значение

getProcessId()

chrome.webviewTag.getProcessId(): number

Возвращает внутренний идентификатор процесса Chrome для текущего процесса гостевой веб-страницы, позволяя встраиваемым объектам узнать, на сколько гостей повлияет завершение процесса. Два гостевых процесса могут использовать один и тот же процесс, только если они относятся к одному приложению и имеют одинаковый идентификатор раздела хранилища. Вызов синхронный и возвращает кешированное представление идентификатора текущего процесса. Идентификатор процесса не совпадает с идентификатором процесса операционной системы.

Возвраты

  • число

getUserAgent()

chrome.webviewTag.getUserAgent(): string

Возвращает строку агента пользователя, которая используется webview для запросов гостевых страниц.

Возвраты

  • string

getZoom()

chrome.webviewTag.getZoom(
  callback: function,
)
: void

Возвращает текущий коэффициент масштабирования.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (zoomFactor: number) => void

    • zoomFactor

      число

      Текущий коэффициент масштабирования.

getZoomMode()

Chrome 43 и более поздних версий;
chrome.webviewTag.getZoomMode(
  callback: function,
)
: void

Возвращает текущий режим масштабирования.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (ZoomMode: ZoomMode) => void

    • ZoomMode

      Текущий режим масштабирования для webview.

go()

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

Переход к записи в истории по индексу относительно текущей навигации. Если запрошенная навигация невозможна, этот метод не действует.

Параметры

  • relativeIndex

    число

    Относительный индекс истории, к которому нужно перейти в webview. Например, значение 2 позволяет перейти на две записи вперед, а -3 – на три записи назад.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (success: boolean) => void

    • выполнено

      Логическое значение

      Указывает, была ли навигация успешной.

insertCSS()

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

Добавление CSS на гостевую страницу.

Параметры

  • подробные сведения

    Подробные сведения о вставляемом CSS.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    () => void

isAudioMuted()

Chrome 62 и более поздних версий
chrome.webviewTag.isAudioMuted(
  callback: function,
)
: void

Запрашивает, отключен ли звук.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (muted: boolean) => void

    • Без звука

      Логическое значение

isSpatialNavigationEnabled()

Chrome 71 и более поздних версий;
chrome.webviewTag.isSpatialNavigationEnabled(
  callback: function,
)
: void

Проверяет, включена ли пространственная навигация для компонента WebView.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (enabled: boolean) => void

    • включено

      Логическое значение

isUserAgentOverridden()

chrome.webviewTag.isUserAgentOverridden(): void

Указывает, была ли строка агента пользователя webview переопределена webviewTag.setUserAgentOverride.

loadDataWithBaseUrl()

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

Загружает URL данных с указанным базовым URL, используемым для относительных ссылок. При необходимости можно указать виртуальный URL, который будет показываться пользователю вместо URL данных.

Параметры

  • dataUrl

    string

    URL данных, которые нужно загрузить.

  • baseUrl

    string

    Базовый URL, который будет использоваться для относительных ссылок.

  • virtualUrl

    Строка (необязательно)

    URL, который будет показываться пользователю в адресной строке.

print()

chrome.webviewTag.print(): void

Печатает содержимое webview. Это эквивалентно вызову функции печати из самого webview.

reload()

chrome.webviewTag.reload(): void

Перезагружает текущую страницу верхнего уровня.

removeContentScripts()

Chrome 44 и более поздних версий;
chrome.webviewTag.removeContentScripts(
  scriptNameList?: string[],
)
: void

Удаляет скрипты контента из webview.

В примере ниже удаляется правило myRule, которое было добавлено ранее.

webview.removeContentScripts(['myRule']);

Чтобы удалить все правила, вызовите следующий метод:

webview.removeContentScripts();

Параметры

  • scriptNameList

    string[] необязательно

    Список названий скриптов контента, которые будут удалены. Если список пуст, все скрипты контента, добавленные в webview, будут удалены.

setAudioMuted()

Chrome 62 и более поздних версий
chrome.webviewTag.setAudioMuted(
  mute: boolean,
)
: void

Отключает звук в компоненте WebView.

Параметры

  • mute

    Логическое значение

    Значение отключения звука

setSpatialNavigationEnabled()

Chrome 71 и более поздних версий;
chrome.webviewTag.setSpatialNavigationEnabled(
  enabled: boolean,
)
: void

Задает состояние пространственной навигации для компонента WebView.

Параметры

  • включено

    Логическое значение

    Значение состояния пространственной навигации.

setUserAgentOverride()

chrome.webviewTag.setUserAgentOverride(
  userAgent: string,
)
: void

Переопределить строку агента пользователя, используемую webview для запросов гостевых страниц. В результате значения заголовка клиентских подсказок User-Agent и значения, возвращаемые navigator.userAgentData, будут пустыми для запросов гостевых страниц, к которым применяется это переопределение.

Параметры

  • userAgent

    string

    Строка агента пользователя, которую нужно использовать.

setZoom()

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

Изменяет масштаб страницы. Область действия и сохранение этого изменения определяются текущим режимом масштабирования компонента WebView (см. webviewTag.ZoomMode).

Параметры

  • zoomFactor

    число

    Новый коэффициент масштабирования.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    () => void

setZoomMode()

Chrome 43 и более поздних версий;
chrome.webviewTag.setZoomMode(
  ZoomMode: ZoomMode,
  callback?: function,
)
: void

Задает режим масштабирования для webview.

Параметры

  • ZoomMode

    Определяет, как обрабатывается масштабирование в webview.

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    () => void

stop()

chrome.webviewTag.stop(): void

Останавливает загрузку текущей навигации webview, если она выполняется.

stopFinding()

chrome.webviewTag.stopFinding(
  action?: StopFindingAction,
)
: void

Завершает текущий сеанс поиска (снимает выделение) и отменяет все выполняемые запросы на поиск.

Параметры

  • действие

    StopFindingAction необязательный

    Определяет, что делать с активным совпадением после завершения сеанса поиска. clear – выделение активного совпадения будет снято; keep – выделение активного совпадения будет сохранено; activate – выделение активного совпадения будет сохранено, и будет сымитирован клик пользователя по этому совпадению. Действие по умолчанию: keep.

terminate()

chrome.webviewTag.terminate(): void

Принудительно завершает процесс отрисовки гостевой веб-страницы. Это может повлиять на несколько тегов webview в текущем приложении, если они используют один и тот же процесс, но не повлияет на теги webview в других приложениях.

События

close

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

Срабатывает, когда гостевое окно пытается закрыться.

В следующем примере кода webview переходит на страницу about:blank, когда гостевой процесс пытается закрыться.

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

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    () => void

consolemessage

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

Срабатывает, когда гостевое окно регистрирует сообщение консоли.

В примере кода ниже все сообщения в журнале пересылаются в консоль встраиваемого приложения без учета уровня журнала и других свойств.

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

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

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

    • уровень

      число

    • Сообщение

      string

    • линия

      число

    • sourceId

      string

contentload

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

Срабатывает, когда гостевое окно активирует событие load, то есть когда загружается новый документ. Сюда не входит навигация по страницам в текущем документе или асинхронная загрузка ресурсов.

В следующем примере кода размер шрифта по умолчанию для элемента body гостевого фрейма изменяется после загрузки страницы:

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

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    () => void

dialog

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

Срабатывает, когда гостевое окно пытается открыть модальное диалоговое окно с помощью window.alert, window.confirm или window.prompt.

Обработка этого события заблокирует гостевой процесс, пока не вернется каждый прослушиватель событий или пока объект dialog не станет недоступным (если был вызван метод preventDefault()).

Режим работы по умолчанию — отмена диалогового окна.

Параметры

exit

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

Срабатывает, когда процесс, отрисовывающий гостевой веб-контент, завершается.

В примере ниже показано, как настроить прощальное сообщение, которое будет появляться при сбое гостевой страницы.

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

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (details: object) => void

    • подробные сведения

      Объект

      • processID

        число

        Внутренний идентификатор Chrome для завершенного процесса.

      • reason

        Строка, указывающая причину выхода.

findupdate

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

Срабатывает, когда для активного запроса на поиск доступны новые результаты. Это может происходить несколько раз в рамках одного запроса на поиск по мере обнаружения совпадений.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

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

    • searchText

      string

    • numberOfMatches

      число

    • activeMatchOrdinal

      число

    • selectionRect
    • отменено

      Логическое значение

    • finalUpdate

      string

loadabort

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

Срабатывает, когда загрузка верхнего уровня прервана без фиксации. Если событие не отменено по умолчанию, в консоли появится сообщение об ошибке.

Примечание. Если загрузка ресурса прервана, за событием loadabort в конечном итоге последует событие loadstop, даже если все подтвержденные загрузки с момента последнего события loadstop (если они были) были прерваны.

Примечание. Если загрузка URL-адреса about или JavaScript прервана, будет запущено событие loadabort, а затем webview перейдет на страницу about:blank.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (url: string, isTopLevel: boolean, code: number, reason: LoadAbortReason) => void

    • url

      string

    • isTopLevel

      Логическое значение

    • код

      число

loadcommit

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

Срабатывает, когда загрузка завершена. Сюда входит навигация в текущем документе, а также загрузка документов на уровне субфреймов, но не асинхронная загрузка ресурсов.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

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

    • url

      string

    • isTopLevel

      Логическое значение

loadredirect

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

Срабатывает, когда запрос на загрузку верхнего уровня перенаправляется на другой URL.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

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

    • oldUrl

      string

    • newUrl

      string

    • isTopLevel

      Логическое значение

loadstart

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

Активируется, когда начинается загрузка.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

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

    • url

      string

    • isTopLevel

      Логическое значение

loadstop

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

Срабатывает, когда завершается загрузка всех фреймов на гостевой странице (включая все дочерние фреймы). Сюда входит навигация в текущем документе, а также загрузка документов на уровне субфреймов, но не асинхронная загрузка ресурсов. Это событие активируется каждый раз, когда количество загрузок на уровне документа переходит от одного (или более) к нулю. Например, если на странице, которая уже загрузилась (т.е. loadstop уже сработал один раз) создает новый элемент iframe, который загружает страницу, а затем второй loadstop сработает, когда загрузка страницы iframe завершится. Такая схема часто наблюдается на страницах, на которых загружаются объявления.

Примечание. Если подтвержденная загрузка прервана, за событием loadabort в конечном итоге последует событие loadstop, даже если все подтвержденные загрузки с момента последнего события loadstop (если оно было) были прерваны.

Параметры

  • обратный вызов

    function

    Параметр 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);
});

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (window: NewWindow, targetUrl: string, initialWidth: number, initialHeight: number, name: string, windowOpenDisposition: WindowOpenDisposition) => void

permissionrequest

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

Срабатывает, когда гостевой странице требуется запросить специальное разрешение у встраивающего элемента.

Приведенный ниже пример кода предоставит гостевой странице доступ к API webkitGetUserMedia. Обратите внимание, что в приложении, использующем этот пример кода, должны быть указаны разрешения манифеста audioCapture и/или videoCapture:

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

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (permission: PermissionType, request: object) => void

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';
});

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (processID: number) => void

    • processID

      число

sizechanged

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

Срабатывает, когда размер встроенного веб-контента изменяется с помощью autosize. Срабатывает, только если включен параметр autosize.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

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

    • oldWidth

      число

    • oldHeight

      число

    • newWidth

      число

    • newHeight

      число

unresponsive

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

Срабатывает, когда процесс, обрабатывающий гостевой веб-контент, перестает отвечать. Это событие будет сгенерировано один раз с соответствующим событием ответа, если гость снова начнет отвечать.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (processID: number) => void

    • processID

      число

zoomchange

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

Срабатывает при изменении масштаба страницы.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

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

    • oldZoomFactor

      число

    • newZoomFactor

      число