我正在使用Youtube Chrome擴展中的Youtube播放器API。
我的目標是能夠使用pageAction的彈出框從我的內容腳本控制Youtube網站上的播放器控件。Chrome擴展中的Youtube播放器API
它是這樣的 -
點擊「播放」按鈕,在彈出發送消息給內容的腳本,內容腳本接收消息並使用播放器API事件「的playVideo()」來播放視頻。
由於內容腳本和頁面本身是相互隔離的,我不能簡單地從頁面獲取播放器的對象,並且從我理解的我不能使用消息從對象發送對象頁面轉到內容腳本。
現在,我可以通過使用HTML5視頻事件繞過所有這些麻煩,但不幸的是,由於Flash仍在使用中,因此這不適用於直播視頻流,所以我沒有別的選擇,只能加載和使用播放器API,我正確嗎?
有沒有辦法在Youtube網站上使用URL參數控制玩家?
(我真的更喜歡加載一個額外的腳本和外部的一切)
談到代碼我想獲得幫助設置需要能夠加載外部腳本的權限。
我看到有需要在manifest
文件中聲明content_security_policy
,但我不明白語法以及如何寫下它,所以我希望有一個示例以及其他任何需要的內容。
在我的內容腳本我使用來自YouTube播放器API文檔所採取的下一個代碼注入腳本:
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
function onYouTubeIframeAPIReady() {
console.log('--- The YT player API is ready from content script! ---');
}
YouTube視頻的嵌入式iframe需要在URL中包含enablejsapi = 1。 YouTube未在其網站上使用iframe API,因此這不起作用。 – kel 2015-03-24 22:59:45
@kel:你的意思是使用URL參數來控制播放器不會正常工作,因爲當使用播放器API時它可以工作,你可以打開控制檯並輸入這個例如:'document.getElementById('movie_player ').playVideo()',你會發現它效果很好:)現在的問題是如何加載它在內容腳本中使用請。 – 2015-03-24 23:42:50
谷歌關於如何在擴展(而不是內容腳本)上注入js。這使您可以訪問玩家對象。 – 2015-03-25 04:32:37