扫码关注官方订阅号
我想在页面加载完之后,再给embed 加入src 值,但embed 后播放不了。 下面是我的两个方案,都无法播放,求解:
欢迎选择我的课程,让我们一起见证您的进步~~
embed 和 object 因为数据(video, audio, flash, activex)的特殊性,跟一般DOM处理上有所不同,在载入后浏览器会拒绝改变它们的 src 属性。
解决这个问题的简单方法是插入整个 embed 元素。 如果是要改变已经在播放的 embed 的话,那得删除掉原来的一个再重新插入完整的 embed 了。。。
<p 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 可以更方便地操作(兼容性也更好)。
embed嵌入式对象是比较特殊的,你一旦嵌入到文档中无论怎么改src它都不会重新加载。其实你了解它的道理后也不难理解,它实质上是浏览器调用的外部插件来渲染的(比如你的例子就是调用的flash插件),这个渲染过程是在嵌入的时候就完成了,而这些属性也都是嵌入的时候传递给插件的。所以当你后面动态修改这些属性的时候,是不会重新传递这些属性的。
embed
要解决这个问题非常简单。你直接把这个嵌入对象用jquery插入就行了,记得把src要写在里面哦,比如这样
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script> <p id="player"></p> <script type="text/javascript"> $(function(){ $('<embed allowFullScreen="true" id="embedid" quality="high" width="620" height="500" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" src="http://player.youku.com/player.php/sid/XMzE5NDUyNTcy/v.swf"></embed>').appendTo('#player'); }) </script>
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
embed 和 object 因为数据(video, audio, flash, activex)的特殊性,跟一般DOM处理上有所不同,在载入后浏览器会拒绝改变它们的 src 属性。
解决这个问题的简单方法是插入整个 embed 元素。 如果是要改变已经在播放的 embed 的话,那得删除掉原来的一个再重新插入完整的 embed 了。。。
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 可以更方便地操作(兼容性也更好)。
embed嵌入式对象是比较特殊的,你一旦嵌入到文档中无论怎么改src它都不会重新加载。其实你了解它的道理后也不难理解,它实质上是浏览器调用的外部插件来渲染的(比如你的例子就是调用的flash插件),这个渲染过程是在嵌入的时候就完成了,而这些属性也都是嵌入的时候传递给插件的。所以当你后面动态修改这些属性的时候,是不会重新传递这些属性的。要解决这个问题非常简单。你直接把这个嵌入对象用jquery插入就行了,记得把src要写在里面哦,比如这样
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script> <p id="player"></p> <script type="text/javascript"> $(function(){ $('<embed allowFullScreen="true" id="embedid" quality="high" width="620" height="500" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" src="http://player.youku.com/player.php/sid/XMzE5NDUyNTcy/v.swf"></embed>').appendTo('#player'); }) </script>