首页 > 开发 > JS > 正文

在页面加载后在设置embed 的src 怎么实现?

2017-09-05 13:02:23  来源:网友分享

我想在页面加载完之后,再给embed 加入src 值,但embed 后播放不了。
下面是我的两个方案,都无法播放,求解:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script><embed allowFullScreen="true" id="embedid"  quality="high" width="620" height="500" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash"></embed><script type="text/javascript">	$(function(){		$("#embedid").attr("src","http://player.youku.com/player.php/sid/XMzE5NDUyNTcy/v.swf");/*		var ebd = document.getElementById("embedid");  		ebd.src = "http://player.youku.com/player.php/sid/XMzE5NDUyNTcy/v.swf";*/	})</script>

解决方案

embed 和 object 因为数据(video, audio, flash, activex)的特殊性,跟一般DOM处理上有所不同,在载入后浏览器会拒绝改变它们的 src 属性。

解决这个问题的简单方法是插入整个 embed 元素。 如果是要改变已经在播放的 embed 的话,那得删除掉原来的一个再重新插入完整的 embed 了。。。

<div id="box"></box>
var box = document.getElementById('box'),str = '<embed allowFullScreen="true" id="embedid"  quality="high" width="620" height="500" align="middle" src="http://player.youku.com/player.php/sid/XMzE5NDUyNTcy/v.swf" allowScriptAccess="always" type="application/x-shockwave-flash"></embed>';box.innerHTML = str;

http://jsfiddle.net/E8PBN/

另外,使用 swfobject 可以更方便地操作(兼容性也更好)。