0

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

manifest.json

{ 
"name": "Ext", 
"version": "0.1", 
"manifest_version": 2, 
"description": "Catching fullscreen.", 
"icons": {"16": "icon_16.png" 
     }, 
"background": { 
    "scripts": ["background.js"] 
}, 
"browser_action":{ 
    "default_title": "Ext", 
    "default_icon": "icon_16.png" 
}, 
"permissions": [ 
    "background", 
    "tabs", 
    "http://*/*", 
    "https://*/*" 
    ] 
} 

background.js

document.addEventListener('DOMContentLoaded', function() { 
var link = document.getElementByClassName('ytp-fullscreen-button'); 

link.addEventListener('click', function() { 
    alert("Fullscreen"); 
    }); 
}); 

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

ответ

0

Прочитано extensions architecture overview: справочная страница расширения не связана с веб-страницей, поэтому сценарий фоновой страницы не имеет прямого доступа к веб-странице document или событиям.

Используйте content script и fullscreenchange событие (в настоящее время он находится под приставкой поставщика):

addVendorEventListener(document, 'fullscreenchange', onFullscreenChange); 

function onFullscreenChange(event) { 
    console.log(event); 
} 

function addVendorEventListener(element, eventName, callback) { 
    var vendorName = 'on' + eventName in element ? eventName 
        : 'onwebkit' + eventName in element ? 'webkit' + eventName 
        : 'onmoz' + eventName in element ? 'moz' + eventName 
        : null; 
    if (vendorName) 
     element.addEventListener(vendorName, callback); 
} 

manifest.json:

"content_scripts": [{ 
    "matches": ["https://www.youtube.com/*"], 
    "js": ["content.js"] 
}], 
Смежные вопросы