2016-10-04 275 views
2

我想用Greasemonkey啓動一個嵌入的videojs視頻。視頻在iframe中運行,我設法用Tampermonkey啓動視頻,但在Firefox中,視頻開始加載並在稍後停止。我想我的下面的腳本在重新加載頁面後開始太快,所以我試圖用setTimeout延遲啓動,但代碼不會啓動。所以我的問題是可以在iframe中使用setTimeout嗎?是否可以在iframe中運行setTimeout?

// ==UserScript== 
// @name  Autoplay 
// @namespace openload 
// @include  https://openload.co/embed/* 
// @version  1.0.0 
// @run-at  document-idle 
// ==/UserScript== 

window.setTimeout(play, 5000); 
function play() 
{ 
console.log("Start"); 
document.querySelector('#videooverlay').click(); 
videojs.getPlayers()['olvideo'].player_.play(); 
console.log("End"); 
} 

我用@include https://openload.co/embed/ *運行的iframe裏面的腳本,否則我不能用命令.play()。 如果我手動打開iframeurl並在FF控制檯上使用這些命令,它可以很好地工作。

+1

很可能在Firefox中,點擊#videooverlay後自動播放視頻。嘗試註釋play()行。 – wOxxOm

+0

我看不到實際問題在這裏。你提出使用超時的代碼,但你的問題的標題詢問你是否可以使用超時...超時是否適合你? console.log'日誌是否出現在控制檯中? –

+0

爲什麼不使用'@include iframeurl'在正確的窗口中執行代碼? – w35l3y

回答

0

也許嘗試這樣的事情

window.addEventListener ("load", playerstart, false); 

function playerstart() { 

} 
+2

解釋爲什麼這段代碼能夠工作並給出更多細節可能會有所幫助。 –

0

我想你會想添加一個「onload」事件監聽器加載到iframe中的頁面,並在加載函數中添加setTimeout。

我覺得更大的問題來弄清楚爲什麼它不在Firefox中播放。這是一個編碼問題?你有FF可以玩的源嗎? Miro視頻轉換器可以提供幫助。

+0

以上添加了我的greasemonkey標題源由openload.co託管,播放器嵌入在我嘗試啓動Video Auto的網站中。加載Url後。如果我手動啓動視頻,它會正常工作,所以我不認爲這是一個編碼問題。 – Hopi

0

你tryed啓動對母公司和IFRAME裏面的腳本?然後使用setTimeout。

+0

請提供您的代碼 –

+0

我想我不能與iframe中的腳本進行交互? – Hopi

相關問題