2015-06-24 59 views
1

這是視頻是否可以在iframe上停止/暫停視頻?

<iframe id="vt" width="420" autoplay="false" height="345" src="http://cache4.asset-cache.net/xd/468140002.mp4?v=1&c=IWSAsset&k=2&d=72990B68305E4FDFEE95B69A879131BCD6D7111452E48A17C03F8342D660D5A451EBC1DEC2A827C9&b=RTdG" frameborder="0" allowfullscreen></iframe> 

我想要做的停止或暫停就可以了,這可能嗎?想在iframe中堅持只

http://jsfiddle.net/karimkhan/2Lgxk5h3/7/

任何功能的js/jQuery的的一樣嗎?

+0

不能存取權限與腳本的iframe時,它不是在同一個域。 (搜索跨站點腳本XSS)。我曾經試圖通過在iFrame上觸發一個空格鍵事件來做到這一點(應該讓視頻停止),但我無法讓它工作並放棄。 – Michiel

回答

1

是的,您可以從iframe訪問您的視頻,但只有在幀源位於同一個域上時才能使用。如果它來自不同的域,則跨站點腳本(XSS)保護將會啓動。

我想你是從你的域播放視頻,(嵌入的iframe url域與頁面域最相同)。

測試:

去這裏: http://cache4.asset-cache.net/

,並運行此代碼在控制檯:

var video = undefined; 
//define iframe in html 
ifrm = document.createElement("IFRAME"); 
ifrm.setAttribute("src", "http://cache4.asset-cache.net/xd/468140002.mp4?v=1&c=IWSAsset&k=2&d=72990B68305E4FDFEE95B69A879131BCD6D7111452E48A17C03F8342D660D5A451EBC1DEC2A827C9&b=RTdG"); 
ifrm.setAttribute("id", "vt"); 
ifrm.setAttribute("width","420"); 
ifrm.setAttribute("autoplay","false"); 
ifrm.setAttribute("height","345"); 
document.body.appendChild(ifrm); 

//iframe load event 
ifrm.onload = function() { 
    var btnPlay = document.createElement("BUTTON"); 
    btnPlay.setAttribute("onclick", "play();"); 
    var t1 = document.createTextNode("PLAY ME");  
    btnPlay.appendChild(t1);        
    document.body.appendChild(btnPlay); 

    var btnPause = document.createElement("BUTTON");   
    btnPause.setAttribute("onclick", "pause();"); 
    var t2 = document.createTextNode("PAUSE ME");  
    btnPause.appendChild(t2);        
    document.body.appendChild(btnPause); 

    video = document.getElementById("vt").contentWindow.document.body.getElementsByTagName('video')[0]; 
} 


//play stop methods 
function play() 
{ 
    if (video != undefined) 
    video.play(); 
    return false; 
} 

function pause() 
{ 
    if (video != undefined) 
    video.pause(); 
    return false; 
} 

如果你的iframe源是不同於您的域名,你無法控制從幀視頻的結論。以上是如何在跨站點腳本編寫不會影響您時控制視頻。

-1

我面臨同樣的問題,我試圖暫停在本地/一個域(S3服務器)在iframe中的視頻,花了幾個小時。我可以知道,比我們使用視頻標籤,如果我們都可以從本地或一個域的視頻,它提供了更多的控制和我使用的iframe YouTube視頻

這裏的代碼,這裏默認的控制是暫停

  <video width='200' height='180' src="" style='position:absolute;width:100%;height:100%;left:0' controls> 
      </video> 

要啓用自動播放

 <video width='200' height='180' src="" style='position:absolute;width:100%;height:100%;left:0' controls autoplay> 
     </video> 

這將節省您的時間和給你更多的控制