如何使用 JavaScript 更改 embed src 的值?

Posted

技术标签:

【中文标题】如何使用 JavaScript 更改 embed src 的值?【英文标题】:How to change the value of embed src with JavaScript? 【发布时间】:2011-10-02 13:11:54 【问题描述】:

我刚刚开始学习 JS。我正在尝试在我的 html 代码中的标签中更改 embed src 的值。但是我无法使用我编写的以下代码来做到这一点-

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"   
    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 空间中选择的 flash 文件。仅凭我的 JS 初学者知识无法做到这一点,还请在使用时解释代码。

【问题讨论】:

您能否包含更多上下文,例如相关的 HTML 或您实际调用此函数的方式。此外,您是否考虑过诸如 JQuery 或 Prototype 之类的脚本库? 你试过 game.src = source; ? 您的代码似乎可以正常工作。哪一部分有问题? 【参考方案1】:

如果只更改参数 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>

【讨论】:

【参考方案2】:

您可以在 javascript 中设置嵌入标签的 src,为此您必须在 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>");

您还可以看到以下网址:需要使用javascript设置视频文件名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

【讨论】:

【参考方案3】:

这可能取决于浏览器和嵌入对象的类型,您必须如何更改对象(例如,Flash 电影有特殊的方法,如 Play() ,但对象不是 Flash 电影开始)

一种常见的方法是将整个嵌入节点替换为新的&lt;embed&gt;

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)

【讨论】:

非常感谢。它工作得很好。顺便说一句,您介意解释一下 cloneNode 函数吗... cloneNode() 创建一个节点的副本,仅此而已。 DOM 内的节点将被此副本替换(使用 replaceChild() )(在副本的 src 属性已更改之后)。 developer.mozilla.org/En/DOM/Node.cloneNode 那么,我认为更改embedsrc 属性没有效果?

以上是关于如何使用 JavaScript 更改 embed src 的值?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 SwiftUI 中的 PickerStyle,如 Embed in Form,但静态且不可滚动?

javascript 从链接#js #embed嵌入Youtube视频

javascript 从链接#js #embed嵌入Youtube视频

SWFObject: Javascript Flash Player detection and embed script

如何使用算术更改 JSON 文件的值?

embed标签动态改变Src的值,局部刷新播放其他视频的javascript方法