Как изменить значение embed src с помощью JavaScript?

Я только начал изучать JS. Я пытаюсь изменить значение embed src в теге, присутствующем в моем HTML-коде. Но я не могу сделать это со следующим кодом, который я написал:

HTML -

<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>

JS:

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

Я хочу, чтобы JS отображал флэш-файл, выбранный в пространстве gameHolder, которое по умолчанию содержит изображение. Я не могу сделать это с моими начальными знаниями JS, также, пожалуйста, объясните код, как вы его используете.


person Community    schedule 11.07.2011    source источник
comment
Можете ли вы включить дополнительный контекст, например соответствующий HTML или то, как вы на самом деле вызываете эту функцию. Кроме того, рассматривали ли вы библиотеку сценариев, такую ​​как JQuery или Prototype?   -  person ghayes    schedule 11.07.2011
comment
Вы пробовали game.src = source; ?   -  person Andrey M.    schedule 11.07.2011
comment
Ваш код, похоже, работает. В какой части у вас проблемы?   -  person Saeed Neamati    schedule 11.07.2011


Ответы (3)


Это может зависеть от браузера и типа встроенного объекта, как вы должны изменить объект (например, есть специальные методы для флеш-роликов, такие как Play() , но объект не является флеш-роликом в начале )

Обычный способ — заменить весь embed-узел новым <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)
}
person Dr.Molle    schedule 11.07.2011
comment
Большое спасибо. Это сработало отлично. Кстати, не могли бы вы объяснить функцию cloneNode... - person ; 11.07.2011
comment
cloneNode() создает копию узла, вот и все. Узел внутри DOM будет заменен (используя replaceChild()) этой копией (после изменения атрибута src копии). developer.mozilla.org/En/DOM/Node.cloneNode - person Dr.Molle; 12.07.2011
comment
Итак, я так понимаю, что изменение атрибута src для embed не имеет никакого эффекта? - person rvighne; 12.07.2014

Это также работает, если вы измените только параметр src

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

person Александр Бурундук    schedule 08.02.2017

вы можете установить src тега для встраивания в javascript, для этого вам нужно написать свой тег для встраивания в javascript, как показано ниже:

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>");
}

вы также можете увидеть ниже URL-адрес: необходимо установить имя видеофайла с помощью javascript lt-embed-gt-using-javascript" rel="nofollow">http://www.webdeveloper.com/forum/showthread.php?53086-how-to-change-the-src-in-lt-embed- gt-using-javascript http://www.daniweb.com/web-development/javascript-dhtml-ajax/threads/16626/how-to-change-the-the-value-of-src-in-embed-using-javascript

person Kashyap Vyas    schedule 20.05.2014