我想在页面加载完之后,再给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>

1、

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;

2、

embed嵌入式对象是比较特殊的,你一旦嵌入到文档中无论怎么改src它都不会重新加载。其实你了解它的道理后也不难理解,它实质上是浏览器调用的外部插件来渲染的(比如你的例子就是调用的flash插件),这个渲染过程是在嵌入的时候就完成了,而这些属性也都是嵌入的时候传递给插件的。所以当你后面动态修改这些属性的时候,是不会重新传递这些属性的。

要解决这个问题非常简单。你直接把这个嵌入对象用jQuery插入就行了,记得把src要写在里面哦,比如这样

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>

<div id="player"></div>

<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>

最新文章

  1. Dropzone.js实现文件拖拽上传
  2. (转)浅谈Java中的对象和对象引用
  3. [bzoj3224][tyvj1728][普通平衡树] (pb_ds库自带红黑树)
  4. 如何调试ANDROID下面黑屏问题
  5. win10 64位安装memcache扩展和开启redis扩展
  6. Object.defineproperty实现数据和视图的联动
  7. initial、inherit、unset、revert和all
  8. Javascript 多浏览器兼容性问题及解决方案
  9. Creating Directives that Communicate
  10. mybatis0209 二级缓存
  11. Intellij Idea 13 vmoptions (Mac版本)
  12. js获得url的参数
  13. css之line-height
  14. Linux系统bashshell之别名
  15. ScalaPB(2): 在scala中用gRPC实现微服务
  16. (二叉树 递归) leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal
  17. js优化总结
  18. kibi - join and filter data from multiple Elasticsearch indexes
  19. JAVA核心技术I---JAVA基础知识(内部类)
  20. Oracle面试题(基础篇)

热门文章

  1. 【转】shell学习笔记(二) ——shell变量
  2. C为变量提供了5中存储模型(类)
  3. spring实例化bean三种方式
  4. win10下配置php环境变量
  5. c# Char &amp;&amp; string
  6. Effective Java 之-----谨慎的覆盖clone方法
  7. Go笔记-map
  8. SpringMVC源码情操陶冶-AbstractHandlerMethodMapping
  9. 给你的jQuery项目赋予Router技能吧
  10. c++多态性---虚函数