2011-07-11 28 views
5

मैंने अभी जेएस सीखना शुरू कर दिया है। मैं अपने एचटीएमएल कोड में मौजूद टैग में एम्बेड src के मान को बदलने की कोशिश कर रहा हूं। लेकिन निम्नलिखित कोड मैं लिखे से ऐसा करने में असमर्थ हूँ -जावास्क्रिप्ट के साथ एम्बेड src के मूल्य को कैसे बदलें?

एचटीएमएल -

<ol> 
<li><a href="http://embedgames.ru/wp-content/games/kitty-throw.swf" 
    onclick="showGame(this);return false;">Kitty Throw</a></li> 
</ol> 

<embed id="gameHolder" src="http://pictat.com/i/2011/7/10/32479playscrnba.jpg" 
    quality="high" menu ="false" width="550" height="400" 
    type="application/x-shockwave-flash" 
    pluginspage="http://www.macromedia.com/go/getflashplayer" /></center> 

जे एस:

function showGame(whichgame){var source=whichgame.getAttribute("href"); 
var game=document.getElementById("gameHolder"); 
game.setAttribute("src",source);} 

मैं जे एस फ़्लैश gameHolder में चयनित फ़ाइल प्रदर्शित करना चाहते हैं अंतरिक्ष जो डिफ़ॉल्ट रूप से एक छवि रखती है। मैं जेएस के अपने शुरुआती ज्ञान के साथ ऐसा करने में असमर्थ हूं, कृपया कोड का उपयोग करने के साथ ही कृपया इसे समझाएं।

+0

आप कुछ शामिल हो सकते हैं वीडियो फ़ाइल नाम सेट करने की जरूरत है अधिक संदर्भ, जैसे प्रासंगिक HTML या आप वास्तव में इस फ़ंक्शन को कैसे कॉल करते हैं। इसके अलावा, क्या आपने एक स्क्रिप्टिंग लाइब्रेरी जैसे JQuery या प्रोटोटाइप माना है? – ghayes

+2

क्या आपने game.src = स्रोत की कोशिश की है; ? –

+0

आपका कोड काम कर रहा है लगता है। आपको किस हिस्से में समस्या है? –

उत्तर

8

यह ब्राउज़र और एम्बेडेड ऑब्जेक्ट के प्रकार पर निर्भर हो सकता है, आपको ऑब्जेक्ट को कैसे बदलना है (उदाहरण के लिए फ्लैश-मूवीज़ जैसे प्ले-मूवीज़ के लिए विशेष तरीके हैं, लेकिन ऑब्जेक्ट फ़्लैश- शुरू)

एक आम तरीका है पर फिल्म के लिए एक नया <embed> साथ पूरे एम्बेड नोड को बदलने के लिए है:

function showGame(whichgame){ 
    var source=whichgame.getAttribute("href"); 
    var game=document.getElementById("gameHolder"); 
    var clone=game.cloneNode(true); 
    clone.setAttribute('src',source); 
    game.parentNode.replaceChild(clone,game) 
} 
+1

आपको बहुत धन्यवाद एसओओ। यह पूरी तरह से काम किया। बीटीडब्ल्यू आपको क्लोन नोड फ़ंक्शन समझाएगा ... –

+0

क्लोन नोड() एक नोड की एक प्रति बनाता है, यह सब कुछ है। इस प्रतिलिपि द्वारा डीओएम के अंदर नोड को प्रतिस्थापित किया जाएगा (replChild() का उपयोग करके) (प्रतिलिपि के स्रोत-विशेषता के बाद) बदल दिया गया है। https://developer.mozilla.org/En/DOM/Node.cloneNode –

+3

तो, क्या मैं इसे 'एम्बेड' की 'src' विशेषता को बदलता हूं, इसका कोई प्रभाव नहीं पड़ता है? – rvighne

0

आप जावास्क्रिप्ट में एम्बेड टैग का स्रोत सेट कर सकते हैं कि आप लिखने के लिए होना आवश्यक है के लिए अपने जावास्क्रिप्ट में टैग एम्बेड करें जैसे कि उदाहरण:

function onclickofSomething() { 
    $('#IDOfParentElement').html("<embed type='application/x-mplayer2' pluginspage='http:///www.microsoft.com/Windows/MediaPlayer/' src='" + "<%=YourVideoPath%>" + "YourVideoName" + ID + ".mp4/wmv" + "' autostart='1' showstatusbar='1' enabled='1' showdisplay='1' showcontrols='1' width='630' height='380'></embed>"); 
} 

आप भी नीचे यूआरएल देख सकते हैं: जावास्क्रिप्ट http://www.webdeveloper.com/forum/showthread.php?53086-how-to-change-the-src-in-lt-embed-gt-using-javascripthttp://www.daniweb.com/web-development/javascript-dhtml-ajax/threads/16626/how-to-change-the-the-value-of-src-in-embed-using-javascript

0

का उपयोग कर यह भी काम करता है अगर आप परम स्रोत बदलने केवल

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"> 
 
\t <EMBED id="movie" src="first.swf" "></EMBED> 
 
</OBJECT> 
 
<ul> 
 
\t <li name='moviename'>first.swf</li> 
 
\t <li name='moviename'>second.swf</li> 
 
\t <li name='moviename'>third.swf</li> 
 
</ul> 
 
<script type="text/javascript"> 
 
\t var names=document.getElementsByName("moviename"); 
 
\t for (var i = names.length - 1; i >= 0; i--) { 
 
\t \t names[i].addEventListener("click", myFunction); 
 
\t \t function myFunction() { 
 
    \t \t document.getElementById("movie").setAttribute("src", this.innerHTML); 
 
\t \t } 
 
\t } 
 
</script>

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

  • कोई संबंधित समस्या नहीं^_^