2012-11-28 21 views
16

मेरे पास मेरे वेबपृष्ठ में आईफ्रेम वीडियो की एक सूची है।सभी लिंक iframe वीडियो को एक लिंक पर क्लिक करने के लिए रोकें जावास्क्रिप्ट

<iframe width="520" height="360" src="http://www.youtube.com/embed/2muxrT5_a6E" frameborder="0" allowfullscreen></iframe> 
<iframe width="520" height="360" src="http://www.youtube.com/embed/2muxrT5_a6E" frameborder="0" allowfullscreen></iframe> 
<iframe width="520" height="360" src="http://www.youtube.com/embed/2muxrT5_a6E" frameborder="0" allowfullscreen></iframe> 
<a href="#" class="close">Stop all videos</a> 

मैं लिंक Stop all videos क्लिक पर सभी खेल रहे आइफ्रेम वीडियो को रोकने के लिए की जरूरत है। मैं उसे कैसे कर सकता हूँ?

+0

https देखें: // डेवलपर्स

आप इन संदेश कीवर्ड का उपयोग कर सकते/बंद शुरू करने के लिए/थामने यूट्यूब वीडियो embdded। google.com/youtube/iframe_api_reference – OammieR

उत्तर

39

इस तरह की कोशिश करो,

<script language="javascript" type="text/javascript" src="jquery-1.8.2.js"></script> 
<script language="javascript" type="text/javascript"> 
$(function(){ 
    $('.close').click(function(){  
     $('iframe').attr('src', $('iframe').attr('src')); 
    }); 
}); 
</script> 
+1

यह ठीक काम कर रहा है। लेकिन समस्या सभी वीडियो को पुनः लोड करने में काफी समय लगता है। क्या कोई और तरीका है या क्या मैं फिर से लोड कर सकता हूं? –

+0

iframes धीमे हैं क्योंकि ब्राउज़र के लिए एक अतिरिक्त ओवरहेड है। – Swarne27

+0

और आपके स्रोत बाहरी साइट से – Swarne27

0

पुनः लोड फिर से सभी iframes वीडियो रुकें

<a href="#" class="close" onclick="stop();">Stop all videos</a> 

function stop(){ 
    var iframe = document.getElementById('youriframe'); 
    iframe.src = iframe.src; 
} 
+1

यह केवल एक वीडियो के लिए काम कर रहा है। यदि एकाधिक वीडियो खेल रहे हैं तो यह काम नहीं करता है। –

9

इस पृष्ठ पर सभी iframes में खेल रहे सभी वीडियो बंद कर देना चाहिए:

$("iframe").each(function() { 
     var src= $(this).attr('src'); 
     $(this).attr('src',src); 
}); 
2

मैं उपर्युक्त कोड को थोड़ा संपादित किया और निम्नलिखित मेरे लिए काम किया .......

<script> 
function stop(){<br/> 
     var iframe = document.getElementById('myvid');<br/> 
    var iframe1 = document.getElementById('myvid1');<br/> 
     var iframe2 = document.getElementById('myvid2');<br/> 
    iframe.src = iframe.src;<br/> 
    iframe1.src=iframe1.src;<br/> 
    iframe2.src=iframe2.src;<br/> 
}<br/> 

</script> 
0
$("#close").click(function(){ 
    $("#videoContainer")[0].pause(); 
}); 
6

रोक साधन रुक कर और समय 0 करने के लिए वीडियो की स्थापना:

 $('iframe').contents().find('video').each(function() 
     { 
      this.currentTime = 0; 
      this.pause(); 
     }); 

इस jQuery कोड बिल्कुल ऐसा होगा।

src विशेषता को प्रतिस्थापित करने और वीडियो को फिर से लोड करने की आवश्यकता नहीं है।


लिटिल समारोह है कि मैं अपने प्रोजेक्ट में उपयोग कर रहा हूँ:

function pauseAllVideos() 
    { 
     $('iframe').contents().find('video').each(function() 
     { 
      this.pause(); 
     }); 
     $('video').each(function() 
     { 
      this.pause(); 
     }); 
    } 
+4

यह 'दस्तावेज़' – sunnyiitkgp

+0

तक पहुंचने की अनुमति अस्वीकार कर रहा है यह मेरी सभी परियोजनाओं में काम करता है। मैंने उस फ़ंक्शन को जोड़ा है जिसका मैं ऊपर उपयोग कर रहा हूं। –

+2

आईफ्रेम सामग्री और ऐप एक ही डोमेन में होना चाहिए! – vijayst

0

आप एक यात्रा

/** 
* Stop an iframe or HTML5 <video> from playing 
* @param {Element} element The element that contains the video 
*/ 
var stopVideo = function (element) { 
    var iframe = element.querySelector('iframe'); 
    var video = element.querySelector('video'); 
    if (iframe) { 
     var iframeSrc = iframe.src; 
     iframe.src = iframeSrc; 
    } 
    if (video) { 
     video.pause(); 
    } 
}; 

मालिक के साथ इस कोड को संशोधित कर सकते हैं: https://gist.github.com/cferdinandi/9044694 भी (मेरे द्वारा) यहां पोस्ट : how to destroy bootstrap modal window completely?

0

सभी iframes को बस लोड करना उन्हें एक भयानक विचार है। एचटीएमएल 5 के साथ आपको क्या लाभ मिलना चाहिए।

YouTube की iframe_API लाइब्रेरी का उपयोग किए बिना; आप बस उपयोग कर सकते हैं:

var stopAllYouTubeVideos =() => { 
    var iframes = document.querySelectorAll('iframe'); 
    Array.prototype.forEach.call(iframes, iframe => { 
    iframe.contentWindow.postMessage(JSON.stringify({ event: 'command', 
    func: 'stopVideo' }), '*'); 
}); 
} 
stopAllYouTubeVideos(); 

जो सभी यूट्यूब इफ्रेम वीडियो को रोक देगा। लाइव डेमो के लिए नीचे दिए गए लिंक

stopVideo 
playVideo 
pauseVideo 

चेक आउट::

https://codepen.io/mcakir/pen/JpQpwm