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 scriptfullscreenchange事件(目前,它的下一個供應商名稱):

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"] 
}],