chrome.webviewTag

Описание

Используйте тег webview для активной загрузки контента из сети в режиме реального времени и встраивания его в ваше приложение Chrome. Ваше приложение сможет управлять внешним видом ` webview и взаимодействовать с веб-контентом, инициировать навигацию по встроенной веб-странице, реагировать на события ошибок, происходящие внутри неё, и многое другое (см. раздел «Использование »).

Разрешения

webview

Доступность

Только для ChromeOS

Типы

ClearDataOptions

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

Характеристики

  • с

    число необязательно

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

ClearDataTypeSet

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

Характеристики

  • кэш приложений

    логический необязательный

    Кэширование веб-сайтов.

  • кэш

    логический необязательный

    Chrome 44+

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

  • файлы cookie

    логический необязательный

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

  • файловые системы

    логический необязательный

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

  • индексированная база данных

    логический необязательный

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

  • локальное хранилище

    логический необязательный

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

  • постоянные файлы cookie

    логический необязательный

    Chrome 58+

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

  • сессионные файлы cookie

    логический необязательный

    Chrome 58+

    Сессионные файлы cookie раздела.

  • веб-SQL

    логический необязательный

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

ContentScriptDetails

Chrome 44+

Подробности о скрипте контента для внедрения. Для получения более подробной информации обратитесь к документации по скриптам контента .

Характеристики

  • все_кадры

    логический необязательный

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

  • css

    Элементы для инъекций (необязательно)

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

  • exclude_globs

    строка[] необязательный

    Применяется после совпадений для исключения URL-адресов, соответствующих этому шаблону. Предназначено для имитации ключевого слова Greasemonkey @exclude.

  • exclude_matches

    строка[] необязательный

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

  • include_globs

    строка[] необязательный

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

  • js

    Элементы для инъекций (необязательно)

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

  • match_about_blank

    логический необязательный

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

  • матчи

    нить[]

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

  • имя

    нить

    Название скрипта контента для внедрения.

  • run_at

    RunAt optional

    Самое раннее время, когда JavaScript или CSS будут внедрены во вкладку. По умолчанию используется значение "document_idle".

ContentWindow

Идентификатор сообщения для гостевого окна.

Характеристики

  • postMessage

    пустота

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

    Гость сможет отправлять ответы встраивающему сервису, отправляя сообщение в event.source в событии message, которое он получит.

    Этот API идентичен API postMessage в HTML5 для обмена данными между веб-страницами. Встраиваемый фрейм может отслеживать ответы, добавив обработчик событий message в свой собственный фрейм.

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

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

    • сообщение

      любой

      Объект сообщения, который будет отправлен гостю.

    • targetOrigin

      нить

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

ContextMenuCreateProperties

Chrome 44+

Характеристики

  • проверено

    логический необязательный

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

  • контексты

    [ ContextType , ... ContextType []] optional

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

  • documentUrlPatterns

    строка[] необязательный

    Позволяет ограничить применение элемента только к документам, URL-адрес которых соответствует одному из заданных шаблонов. (Это относится и к фреймам.) Подробную информацию о формате шаблона см. в разделе «Шаблоны соответствия» .

  • включено

    логический необязательный

    Включен или выключен этот пункт контекстного меню. По умолчанию — true .

  • идентификатор

    строка необязательный

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

  • parentId

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

    Идентификатор родительского пункта меню; это делает данный пункт дочерним по отношению к ранее добавленному пункту.

  • targetUrlPatterns

    строка[] необязательный

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

  • заголовок

    строка необязательный

    Текст, который должен отображаться в элементе; это обязательное поле , если type не равен «разделитель». Если контекст — «выделение», вы можете использовать %s внутри строки для отображения выделенного текста. Например, если значение этого параметра — «Перевести '%s' на свинскую латынь», и пользователь выделяет слово «cool», пункт контекстного меню для этого выделения будет «Перевести 'cool' на свинскую латынь».

  • тип

    ItemType ( необязательный параметр)

    Тип пункта меню. По умолчанию — «обычный», если не указано иное.

  • при клике

    void optional

    Функция, которая будет вызываться при щелчке по пункту меню.

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

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

    • информация

      Информация о клике и контексте, в котором он произошел.

ContextMenus

Chrome 44+

Характеристики

  • onShow

    Событие<functionvoidvoid>

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

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

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

    • перезвонить

      функция

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

      (event: object) => void

      • событие

        объект

        • preventDefault

          пустота

          Вызовите эту функцию, чтобы предотвратить отображение контекстного меню.

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

          () => {...}

  • создавать

    пустота

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

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

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

    • создатьСвойства

      объект

      Свойства, использованные для создания предмета.

    • перезвонить

      функция необязательна

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

      () => void

    • возвраты

      строка | число

      Идентификатор вновь созданного элемента.

  • удалять

    пустота

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

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

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

    • menuItemId

      строка | число

      Идентификатор пункта контекстного меню, который нужно удалить.

    • перезвонить

      функция необязательна

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

      () => void

  • удалитьВсе

    пустота

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

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

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

    • перезвонить

      функция необязательна

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

      () => void

  • обновлять

    пустота

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

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

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

    • идентификатор

      строка | число

      Идентификатор элемента, который необходимо обновить.

    • обновитьСвойства

      объект

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

    • перезвонить

      функция необязательна

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

      () => void

ContextMenuUpdateProperties

Chrome 44+

Характеристики

  • проверено

    логический необязательный

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

  • контексты

    [ ContextType , ... ContextType []] optional

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

  • documentUrlPatterns

    строка[] необязательный

    Позволяет ограничить применение элемента только к документам, URL-адрес которых соответствует одному из заданных шаблонов. (Это относится и к фреймам.) Подробную информацию о формате шаблона см. в разделе «Шаблоны соответствия» .

  • включено

    логический необязательный

    Включен или выключен этот пункт контекстного меню.

  • parentId

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

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

  • targetUrlPatterns

    строка[] необязательный

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

  • заголовок

    строка необязательный

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

  • тип

    ItemType ( необязательный параметр)

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

  • при клике

    void optional

    Функция, которая будет вызываться при щелчке по пункту меню.

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

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

    • информация

      Информация о клике и контексте, в котором он произошел.

ContextType

Chrome 44+

Различные контексты, в которых может отображаться меню. Указание «все» эквивалентно комбинации всех остальных контекстов.

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

"все"

"страница"

"рамка"

«выбор»

"связь"

"редактируемый"

"изображение"

"видео"

"аудио"

DialogController

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

Характеристики

  • отмена

    пустота

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

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

    () => {...}

  • хорошо

    пустота

    Подтвердите диалоговое окно. Это эквивалентно нажатию кнопки ОК в диалоговом окне alert , confirm или prompt .

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

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

    • ответ

      строка необязательный

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

DialogMessageType

Chrome 141+

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

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

"тревога"

"подтверждать"

"быстрый"

DownloadPermissionRequest

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

Характеристики

  • requestMethod

    нить

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

  • url

    нить

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

  • позволять

    пустота

    Разрешите запрос на предоставление разрешения.

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

    () => {...}

  • отрицать

    пустота

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

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

    () => {...}

ExitReason

Chrome 141+

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

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

"нормальный"

"аномальный"

"разбился"

"убит"

"Комната опустела"

"ум"

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

«нарушение целостности»

FileSystemPermissionRequest

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

Характеристики

  • url

    нить

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

  • позволять

    пустота

    Разрешите запрос на предоставление разрешения.

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

    () => {...}

  • отрицать

    пустота

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

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

    () => {...}

FindCallbackResults

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

Характеристики

  • activeMatchOrdinal

    число

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

  • отменено

    логический

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

  • количествоСовпадений

    число

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

  • selectionRect

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

FindOptions

Варианты для запроса на поиск.

Характеристики

  • назад

    логический необязательный

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

  • matchCase

    логический необязательный

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

FullscreenPermissionRequest

Chrome 43+

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

Характеристики

  • источник

    нить

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

  • позволять

    пустота

    Разрешите запрос на предоставление разрешения.

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

    () => {...}

  • отрицать

    пустота

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

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

    () => {...}

GeolocationPermissionRequest

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

Характеристики

  • url

    нить

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

  • позволять

    пустота

    Разрешите запрос на предоставление разрешения.

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

    () => {...}

  • отрицать

    пустота

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

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

    () => {...}

HidPermissionRequest

Chrome 125+

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

Характеристики

  • url

    нить

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

  • позволять

    пустота

    Разрешите запрос на предоставление разрешения.

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

    () => {...}

  • отрицать

    пустота

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

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

    () => {...}

InjectDetails

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

Характеристики

  • код

    строка необязательный

    Для внедрения используйте JavaScript или CSS-код.

    Внимание: Будьте осторожны при использовании параметра code . Неправильное его использование может сделать ваше приложение уязвимым для атак межсайтового скриптинга (XSS) .

  • файл

    строка необязательный

    Для внедрения используйте JavaScript-код или CSS-файл.

InjectionItems

Chrome 44+

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

Характеристики

  • код

    строка необязательный

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

  • файлы

    строка[] необязательный

    Список файлов 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 ` loadplugin permissionrequest .

Характеристики

  • идентификатор

    нить

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

  • имя

    нить

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

  • позволять

    пустота

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

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

    () => {...}

  • отрицать

    пустота

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

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

    () => {...}

MediaPermissionRequest

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

Характеристики

  • url

    нить

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

  • позволять

    пустота

    Разрешите запрос на предоставление разрешения.

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

    () => {...}

  • отрицать

    пустота

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

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

    () => {...}

NewWindow

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

Характеристики

  • прикреплять

    пустота

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

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

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

    • веб-просмотр

      объект

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

  • отказаться

    пустота

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

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

    () => {...}

PermissionType

Chrome 141+

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

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

«медиа»

"геолокация"

"pointerLock"

"скачать"

"loadplugin"

"файловая система"

"полноэкранный"

"скрытый"

PointerLockPermissionRequest

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

Характеристики

  • lastUnlockedBySelf

    логический

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

  • url

    нить

    URL-адрес кадра, запрашивающего блокировку указателя.

  • пользовательский жест

    логический

    Указывалось, был ли запрошен блокировка указателя в результате жеста ввода пользователя.

  • позволять

    пустота

    Разрешите запрос на предоставление разрешения.

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

    () => {...}

  • отрицать

    пустота

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

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

    () => {...}

SelectionRect

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

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

Характеристики

  • высота

    число

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

  • левый

    число

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

  • вершина

    число

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

  • ширина

    число

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

StopFindingAction

Chrome 141+

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

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

"прозрачный"

"держать"

"активировать"

WebRequestEventInterface

Chrome 44+

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

Чтобы проиллюстрировать, чем использование отличается от 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 webRequest должны создаваться на основе их аналогов 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+

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

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

"игнорировать"

"save_to_disk"

"current_tab"

"новая_фоновая_вкладка"

"new_foreground_tab"

"новое_окно"

"new_popup"

ZoomMode

Chrome 43+

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

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

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

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

"неполноценный"
Отключает масштабирование в веб-представлении. Содержимое вернется к уровню масштабирования по умолчанию, и все попытки изменения масштаба будут проигнорированы.

Характеристики

contentWindow

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

contextMenus

Chrome 44+

Аналогично API ContextMenus в 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 .

Для получения более подробной информации обратитесь к документации по скриптам контента .

Параметры

  • contentScriptList

    Подробная информация о скриптах контента, которые необходимо добавить.

back()

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

По возможности выполняет на одну запись в истории возврат. Эквивалентно go(-1) .

Параметры

  • перезвонить

    функция необязательна

    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

Захватывает видимую область веб-представления.

Параметры

  • параметры

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

  • перезвонить

    функция

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

    (dataUrl: string) => void

    • dataUrl

      нить

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

clearData()

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

Очищает данные просмотра для раздела webview .

Параметры

  • параметры

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

  • Типы данных, подлежащих удалению.

  • перезвонить

    функция необязательна

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

    () => void

executeScript()

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

Внедряет JavaScript-код на гостевую страницу.

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

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

Параметры

  • подробности

    Подробности о скрипте для выполнения.

  • перезвонить

    функция необязательна

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

    (result?: any[]) => void

    • результат

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

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

find()

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

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

Параметры

  • поискТекст

    нить

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

  • параметры

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

    Варианты для запроса на поиск.

  • перезвонить

    функция необязательна

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

    (results?: FindCallbackResults) => void

    • результаты

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

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

forward()

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

По возможности переходит на одну запись в истории вперед. Эквивалентно go(1) .

Параметры

  • перезвонить

    функция необязательна

    Chrome 44+

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

    (success: boolean) => void

    • успех

      логический

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

getAudioState()

Chrome 62+
chrome.webviewTag.getAudioState(
  callback: function,
)
: void

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

Параметры

  • перезвонить

    функция

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

    (audible: boolean) => void

    • слышимый

      логический

getProcessId()

chrome.webviewTag.getProcessId(): number

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

Возвраты

  • число

getUserAgent()

chrome.webviewTag.getUserAgent(): string

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

Возвраты

  • нить

getZoom()

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

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

Параметры

  • перезвонить

    функция

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

    (zoomFactor: number) => void

    • zoomFactor

      число

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

getZoomMode()

Chrome 43+
chrome.webviewTag.getZoomMode(
  callback: function,
)
: void

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

Параметры

  • перезвонить

    функция

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

    (ZoomMode: ZoomMode) => void

go()

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

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

Параметры

  • относительный индекс

    число

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

  • перезвонить

    функция необязательна

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

    (success: boolean) => void

    • успех

      логический

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

insertCSS()

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

Внедряет CSS-стили на гостевую страницу.

Параметры

  • подробности

    Подробности о CSS-коде, который необходимо вставить.

  • перезвонить

    функция необязательна

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

    () => void

isAudioMuted()

Chrome 62+
chrome.webviewTag.isAudioMuted(
  callback: function,
)
: void

Проверяет, отключен ли звук.

Параметры

  • перезвонить

    функция

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

    (muted: boolean) => void

    • приглушенный

      логический

isSpatialNavigationEnabled()

Chrome 71+
chrome.webviewTag.isSpatialNavigationEnabled(
  callback: function,
)
: void

Запрашивает информацию о том, включена ли пространственная навигация для веб-представления.

Параметры

  • перезвонить

    функция

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

    нить

    URL-адрес данных для загрузки.

  • baseUrl

    нить

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

  • виртуальный URL

    строка необязательный

    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

    строка[] необязательный

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

setAudioMuted()

Chrome 62+
chrome.webviewTag.setAudioMuted(
  mute: boolean,
)
: void

Устанавливает состояние отключения звука в веб-представлении.

Параметры

  • немой

    логический

    Отключить звук

setSpatialNavigationEnabled()

Chrome 71+
chrome.webviewTag.setSpatialNavigationEnabled(
  enabled: boolean,
)
: void

Устанавливает состояние пространственной навигации веб-представления.

Параметры

  • включено

    логический

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

setUserAgentOverride()

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

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

Параметры

  • userAgent

    нить

    Строка пользовательского агента для использования.

setZoom()

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

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

Параметры

  • zoomFactor

    число

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

  • перезвонить

    функция необязательна

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

    () => void

setZoomMode()

Chrome 43+
chrome.webviewTag.setZoomMode(
  ZoomMode: ZoomMode,
  callback?: function,
)
: void

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

Параметры

  • Режим масштабирования

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

  • перезвонить

    функция необязательна

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

    () => void

stop()

chrome.webviewTag.stop(): void

Прекращает загрузку текущей навигации webview , если она еще не завершена.

stopFinding()

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

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

Параметры

  • действие

    Определяет, что делать с активным совпадением после завершения сеанса поиска. 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';
});

Параметры

  • перезвонить

    функция

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

    • уровень

      число

    • сообщение

      нить

    • линия

      число

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

Параметры

  • перезвонить

    функция

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

    (details: object) => void

    • подробности

      объект

      • идентификатор процесса

        число

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

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

findupdate

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

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

Параметры

  • перезвонить

    функция

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

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

    • поискТекст

      нить

    • количествоСовпадений

      число

    • activeMatchOrdinal

      число

    • selectionRect
    • отменено

      логический

    • финальное обновление

      нить

loadabort

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

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

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

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

Параметры

  • перезвонить

    функция

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

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

    • url

      нить

    • isTopLevel

      логический

    • код

      число

    • причина

loadcommit

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

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

Параметры

  • перезвонить

    функция

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

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

    • url

      нить

    • isTopLevel

      логический

loadredirect

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

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

Параметры

  • перезвонить

    функция

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

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

    • старый URL

      нить

    • новый URL

      нить

    • isTopLevel

      логический

loadstart

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

Срабатывает при начале подачи груза.

Параметры

  • перезвонить

    функция

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

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

    • url

      нить

    • isTopLevel

      логический

loadstop

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

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

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

Параметры

  • перезвонить

    функция

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

Параметры

  • перезвонить

    функция

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

Параметры

  • перезвонить

    функция

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

    (processID: number) => void

    • идентификатор процесса

      число

sizechanged

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

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

Параметры

  • перезвонить

    функция

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

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

    • стараяШирина

      число

    • старый рост

      число

    • новая ширина

      число

    • новая высота

      число

unresponsive

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

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

Параметры

  • перезвонить

    функция

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

    (processID: number) => void

    • идентификатор процесса

      число

zoomchange

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

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

Параметры

  • перезвонить

    функция

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

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

    • старый ZoomFactor

      число

    • новый ZoomFactor

      число