2010-07-30 23 views
5

पर यूट्यूब एपीआई सक्षम करें मेरे पास एक एम्बेडेड यूट्यूब वीडियो है जिसे मैं यूट्यूब एपीआई लागू करना चाहता हूं। मैं jQuery का उपयोग कर के रूप में निम्नानुसार (demo) url पैरामीटर जोड़ें:मौजूदा प्लेयर

$(document).ready(function(){ 
var obj = $('object'); 
obj.find('embed').attr('src', function(i,s){return s+'&enablejsapi=1&version=3'}) 
obj.find('param[name=movie]').attr('value', function(i,v){return v+'&enablejsapi=1&version=3'}) 

$('.play').click(function(){ 
    obj.find('embed')[0].playVideo(); 
}); 
$('.pause').click(function(){ 
    obj.find('embed')[0].pauseVideo(); 
}) 
}); 

इस विधि फ़ायरफ़ॉक्स में अच्छा काम करता है, लेकिन बिल्कुल नहीं आईई या क्रोम (अन्य ब्राउज़र के बारे में निश्चित नहीं) में। तो मेरा सवाल यह है कि मैं अन्य ब्राउज़र में एपीआई काम करने के लिए इसे कैसे संशोधित करूं? क्या मुझे ऑब्जेक्ट को पूरी तरह से हटा देना होगा और SWFObject का उपयोग करके इसे बदलना होगा?

नोट: एम्बेड कोड सीधे YouTube से है।


अद्यतन: मैं पता लगा कि अगर मैं, वस्तु को दूर जोड़ने url पैरामीटर तो वस्तु वापस जोड़ने के लिए, मैं अब यह क्रोम में काम करने के लिए प्राप्त कर सकते हैं, लेकिन अभी भी नहीं आईई (updated demo)।


अनुपूरक: YouTube एपीआई फ़ंक्शन क्यों नहीं है जब ऑब्जेक्ट/एम्बेड में पहले से ही सक्षम कोड है? मैं SWFObject को निर्भरता बनाने से बचने की कोशिश कर रहा हूं।

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="640" height="385"> 
<param name="movie" value="http://www.youtube.com/v/2Qj8PhxSnhg&amp;hl=en_US&amp;fs=1&enablejsapi=1&version=3"></param> 
<param name="allowFullScreen" value="true"></param> 
<param name="allowscriptaccess" value="always"></param> 
<embed src="http://www.youtube.com/v/2Qj8PhxSnhg&amp;hl=en_US&amp;fs=1&enablejsapi=1&version=3" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed> 
</object> 
+0

समस्या यह प्रतीत होती है कि जब आप इसे src विशेषता बदलते हैं तो Chrome और IE तत्व के लिए DOM/एम्बेड एपीआई अपडेट नहीं करते हैं। अगर आप कोड में सीधे क्वेरीस्ट्रिंग जोड़ते हैं तो कोड काम करता है। क्या आपकी साइट को गतिशील रूप से जोड़ने की आवश्यकता है? – aolde

+0

@ मंटूरोर: यह एक आवश्यकता नहीं है, मैं एक प्लगइन को संशोधित करने की कोशिश कर रहा हूं। वीडियो कोड/लिंक को उपयोगकर्ता द्वारा सूची में जोड़ा जाता है, इसलिए मैं इस काम को बिना एम्बेड टैग जैसे नियमों को सेट किए बिना सबसे आसान तरीका निर्धारित करने का प्रयास कर रहा था। – Mottie

+0

मुझे यह वही समस्या थी, और आईई ने क्लासिड = "clsid: D27CDB6E-AE6D-11cf-96B8-444553540000" विशेषता जोड़ने के बाद उचित रूप से मेरे लिए व्यवहार करना शुरू कर दिया है जो SWFObject जोड़ता है। – kamens

उत्तर

2

swfobject के बारे में - हाँ। आईई सभी अन्य ब्राउज़रों की तुलना में फ्लैश एम्बेड को थोड़ा अलग करता है (धन्यवाद Activex)। अधिक जानकारी के लिए क्यों, और SWFObject documentation का विचार पाने के लिए this article देखें।

इसके अलावा, मैंने हाल ही में प्लेयर एपीआई (मूल रूप से आप जो कर रहे हैं) का उपयोग कर एम्बेडेड प्लेयर को नियंत्रित करने में मदद के लिए एक jQuery प्लगइन बनाया है।

इसे बाहर की जाँच करें, यह jQuery TubePlayer प्लगइन है - http://www.tikku.com/jquery-youtube-tubeplayer-plugin

+0

तो ऐसा लगता है कि आप SWFObject प्लगइन के आधार पर हैं। मैं समस्या का सार खोजने की कोशिश कर रहा हूं। ब्राउज़रों के बीच अंतर खोजने के लिए SWFObject कोड के माध्यम से खोदना मेरे लिए बहुत खुलासा नहीं कर रहा है। – Mottie

+0

मैंने छोड़ दिया और बस SWFObject प्लगइन का उपयोग करने के साथ चला गया, इसलिए मैं आपके उत्तर को स्वीकार्य रूप से चिह्नित करने जा रहा हूं, भले ही मुझे अभी भी समस्या का सार नहीं मिल सका। हालांकि धन्यवाद! – Mottie

1

आईई $('object') शायद नहीं मिल रहा है क्योंकि आप सही प्रकार (obj लंबाई पर एक चेतावनी है) निर्दिष्ट करने की आवश्यकता है, लेकिन आप यह कर obj = $('embed') अगर काम करेगा चीजों को एक अलग तरीके से लपेटना बुद्धिमान हो सकता है, जो $('<div id="test/>') करता है और फिर एम्बेड/ऑब्जेक्ट्स जोड़ता है और src और movie मानों को बदलता है।

संपादित करें: जब तक यह एक type या clsid विशेषता निर्दिष्ट है, आईई object रजिस्टर करने के लिए प्रतीत नहीं होता है जैसे

संपादित करें # 2: आप शायद सिर्फ outerHTML निरीक्षण कर सकते हैं वस्तु तत्व की @http://savedbythegoog.appspot.com/retrieve_cache?unique_id=http://code.google.com/apis/ajax/playground/samples/boilerplateHTML/youtube/chromeless.html|http://code.google.com/apis/ajax/playground/samples/js/youtube/chromeless.js&defaultSample=true

+0

मैं IE के साथ समस्या को डुप्लिकेट नहीं कर सका, कम से कम IE8 में CSID के बिना '$ ('ऑब्जेक्ट') नहीं ढूंढ रहा था। मैंने 'बाहरी HTML' का उपयोग करके कच्चे HTML को जोड़ने का प्रयास किया क्योंकि SWFObject फ़ाइल करता है, लेकिन ऐसा कोई फर्क नहीं पड़ता। – Mottie

+0

मैंने आईई 6 में परीक्षण किया, fyi .. –

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