15

खेलना बंद करें मैंने वीडियो एम्बेड करने के लिए आईफ्रेम फ़ंक्शन का उपयोग किया है, और मैं जावास्क्रिप्ट के माध्यम से सामग्री और वीडियो छुपा रहा/दिखा रहा हूं।जावास्क्रिप्ट में छुपाएं/दिखाएं - यूट्यूब आईफ्रेम वीडियो

मेरे पास एक समस्या है। जब मैं पहले वीडियो पर खेलता हूं, और फिर पहले को रोकने के बिना अगले पर क्लिक करता हूं, तो पहला वाला खेल खेलता रहता है।

नई सामग्री दिखाते समय, "पृष्ठभूमि" में वीडियो को रोकने के लिए मैं क्या कर सकता हूं?

$(function(){ 
    $("#link1").click(show1); 
}); 

function show1(){ 
    $("#pic1").fadeIn(); 
    $("#pic2").hide(); 
} 

मैं सिर्फ इस सरल JavaScript फ़ंक्शन, जहाँ "pic1" और "pic2" आईडी div की आईडी का उपयोग कर रहा है, वीडियो में एम्बेडेड रहे हैं।

मैं बस नहीं कर पा रहे इसे काम करने के लिए। मैंने हटाने की कोशिश की, लेकिन फिर आप वीडियो को फिर से नहीं देख सकते हैं।

+0

संभव डुप्लिकेट ' टी बंद होने पर रोकें] (http://stackoverflow.com/questions/8667882/video-wont-stop-when-div-is-hidden) –

+0

देखें: http://stackoverflow.com/questions/1094397/how -can-i-stop-a-video-with-जावास्क्रिप्ट-इन-यूट्यूब – xbonez

+1

@xbonez आपका प्रश्न ** फ़्रेम किए गए ** यूट्यूब वीडियो के बारे में नहीं है । –

उत्तर

27

यह अतिरिक्त फ़ाइलों को लोड किए बिना YouTube प्लेयर एपीआई का कार्यान्वयन है। यह काम प्राप्त करने के लिए, आपको विशेषता ?enablejsapi=1 के साथ अपने सभी की src विशेषता को प्रत्ययित करना होगा।

उदाहरण (मैं पठनीयता के लिए कुछ लाइनों पर कोड को तोड़ दिया, आप सुरक्षित रूप से लाइनब्रेक छोड़ सकते हैं):

<div id="pic3"> 
    <iframe width="640" height="390" 
      src="http://www.youtube.com/embed/Xub4grFLbQM?enablejsapi=1" 
      frameborder="0" allowfullscreen></iframe> 
</div> 

<div id="tS2" class="jThumbnailScroller"> 
.. Removed your code for readability.... 
    <a href="#vid3" id="link3"><img src="images/thumbs/player2.jpg" height="85"/></a> 
    .... 

जावास्क्रिप्ट + jQuery कोड:

$(function() { 
    /* elt: Optionally, a HTMLIFrameElement. This frame's video will be played, 
    *  if possible. Other videos will be paused*/ 
    function playVideoAndPauseOthers(frame) { 
     $('iframe[src*="http://www.youtube.com/embed/"]').each(function(i) { 
      var func = this === frame ? 'playVideo' : 'pauseVideo'; 
      this.contentWindow.postMessage('{"event":"command","func":"' + func + '","args":""}', '*'); 
     }); 
    } 
    $('#tS2 a[href^="#vid"]').click(function() { 
     var frameId = /#vid(\d+)/.exec($(this).attr('href')); 
     if (frameId !== null) { 
      frameId = frameId[1]; // Get frameId 
      playVideoAndPauseOthers($('#pic' + frameId + ' iframe')[0]); 
     } 
    }); 
}); 
की [वीडियो जीता
+0

आप बहुत ही अच्छे हैं! धन्यवाद :- डी –

+0

यह नहीं है अब और काम करने लगते हैं, मुझे यह त्रुटि मिलती है: 'उत्पत्ति के साथ एक फ्रेम को अवरुद्ध "http://www.mywebsite.com" मूल के साथ एक फ्रेम तक पहुंचने से "http://www.youtube.com" प्रोटोकॉल, डोमेन, और बंदरगाहों का मिलान होना चाहिए। '' सामग्रीविंडो 'संपत्ति तक पहुंचने का प्रयास करते समय –

+0

@ bfred.it विधि अभी भी काम करती है, या कई अन्य स्क्रिप्ट (आधिकारिक यूट्यूब आईफ्रेम एपीआई समेत) तोड़ जाएगी। आप किस कोड का उपयोग कर रहे हैं? –

संबंधित मुद्दे