如何使用 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 电影开始)
一种常见的方法是将整个嵌入节点替换为新的<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)
【讨论】:
非常感谢。它工作得很好。顺便说一句,您介意解释一下 cloneNode 函数吗... cloneNode() 创建一个节点的副本,仅此而已。 DOM 内的节点将被此副本替换(使用 replaceChild() )(在副本的 src 属性已更改之后)。 developer.mozilla.org/En/DOM/Node.cloneNode 那么,我认为更改embed
的src
属性没有效果?以上是关于如何使用 JavaScript 更改 embed src 的值?的主要内容,如果未能解决你的问题,请参考以下文章
如何更改 SwiftUI 中的 PickerStyle,如 Embed in Form,但静态且不可滚动?
javascript 从链接#js #embed嵌入Youtube视频
javascript 从链接#js #embed嵌入Youtube视频
SWFObject: Javascript Flash Player detection and embed script