【问题标题】:How to change the value of embed src with JavaScript?如何使用 JavaScript 更改 embed src 的值?
【发布时间】: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" 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 空间中选择的 flash 文件。仅凭我的 JS 初学者知识无法做到这一点,还请在使用时解释代码。

【问题讨论】:

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

标签: javascript embed src


【解决方案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 属性没有效果?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2011-04-13
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      相关资源
      最近更新 更多