如何动态地向已显示的嵌入元素添加wmode=opaque?

5
如何动态添加wmode="opaque"到已经显示的embed元素?不重新加载元素,嵌入的内容不应该失去其状态。仅使用JavaScript设置wmode属性无效。删除元素然后再次添加使wmode生效,但Flash元素会失去其状态,以及其他问题。例如,如果它是视频播放器,则位置/播放状态将重置。因此,该解决方案行不通。接受在嵌入元素上显示内容的任何其他方法。 (我通过Chrome扩展中的内容脚本执行此操作,如果有帮助,请告诉我。)
这不是如何动态添加wmode=transparent到Youtube嵌入代码?的重复,因为该参数是添加到帧而不是直接添加到元素本身。

我不确定你能否做到。页面加载后立即执行会有问题吗?或者这对你的扩展程序没有帮助? - Brad
@Brad,扩展程序只有在用户单击按钮后(页面加载后的某个时间)才会被调用,因此我希望避免运行内容脚本并修改用户不想使用扩展程序的页面(大多数页面)。 (如果在用户调用扩展程序之前某个时候在页面上创建了动态嵌入,则必须跟踪和更改它们,不确定是否容易实现。) - Qtax
@Qtax,你看过这个吗:https://dev59.com/1nRB5IYBdhLWcg3wuZbo - Dagg Nabbit
@GGG,wrap() 方法会移除并重新添加元素吗? - Qtax
@Qtax 这是针对YouTube的吗?如果是的话,有一个简单的解决办法。只是问一下,因为你链接了另一个与YouTube相关的帖子... - Dagg Nabbit
显示剩余4条评论
2个回答

0

iframe 遮住了它所覆盖的 Flash 的一部分,使其他元素可以在其上方显示。至少在 Chrome 中是这样。

这就是 YouTube 在播放列表栏中使用的方法(位于视口底部)。


你能详细解释一下你的回答吗?目前你的问题和回答之间没有明确的关系(<iframe>突然出现)。 - Rob W
@RobW,目标是在嵌入的Flash对象上显示某些内容(根据问题中的条件)。使用这样的<iframe>是一种解决方法,也是我找到的唯一解决方案。 - Qtax

0

1
这会重新添加元素,导致 embed 的状态丢失。不好。 :/ - Qtax
这会导致swf刷新。 - Panzercrisis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接