- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个页面,显示来自 issuu.com 的动态 Flash 内容。我需要添加 wmode="transparent"
因为否则导航菜单会显示在 flash 下。有没有一种简单的方法可以使用 jQuery 或简单的 java 脚本来做到这一点?
我不想每次添加 Flash 时都更改嵌入代码。
最佳答案
好的,经过 2 天的网络搜索答案后,我发现了一个纯 JS 函数,可以在所有浏览器中修复它!
就这样:
function fix_flash() {
// loop through every embed tag on the site
var embeds = document.getElementsByTagName('embed');
for (i = 0; i < embeds.length; i++) {
embed = embeds[i];
var new_embed;
// everything but Firefox & Konqueror
if (embed.outerHTML) {
var html = embed.outerHTML;
// replace an existing wmode parameter
if (html.match(/wmode\s*=\s*('|")[a-zA-Z]+('|")/i))
new_embed = html.replace(/wmode\s*=\s*('|")window('|")/i, "wmode='transparent'");
// add a new wmode parameter
else
new_embed = html.replace(/<embed\s/i, "<embed wmode='transparent' ");
// replace the old embed object with the fixed version
embed.insertAdjacentHTML('beforeBegin', new_embed);
embed.parentNode.removeChild(embed);
} else {
// cloneNode is buggy in some versions of Safari & Opera, but works fine in FF
new_embed = embed.cloneNode(true);
if (!new_embed.getAttribute('wmode') || new_embed.getAttribute('wmode').toLowerCase() == 'window')
new_embed.setAttribute('wmode', 'transparent');
embed.parentNode.replaceChild(new_embed, embed);
}
}
// loop through every object tag on the site
var objects = document.getElementsByTagName('object');
for (i = 0; i < objects.length; i++) {
object = objects[i];
var new_object;
// object is an IE specific tag so we can use outerHTML here
if (object.outerHTML) {
var html = object.outerHTML;
// replace an existing wmode parameter
if (html.match(/<param\s+name\s*=\s*('|")wmode('|")\s+value\s*=\s*('|")[a-zA-Z]+('|")\s*\/?\>/i))
new_object = html.replace(/<param\s+name\s*=\s*('|")wmode('|")\s+value\s*=\s*('|")window('|")\s*\/?\>/i, "<param name='wmode' value='transparent' />");
// add a new wmode parameter
else
new_object = html.replace(/<\/object\>/i, "<param name='wmode' value='transparent' />\n</object>");
// loop through each of the param tags
var children = object.childNodes;
for (j = 0; j < children.length; j++) {
try {
if (children[j] != null) {
var theName = children[j].getAttribute('name');
if (theName != null && theName.match(/flashvars/i)) {
new_object = new_object.replace(/<param\s+name\s*=\s*('|")flashvars('|")\s+value\s*=\s*('|")[^'"]*('|")\s*\/?\>/i, "<param name='flashvars' value='" + children[j].getAttribute('value') + "' />");
}
}
}
catch (err) {
}
}
// replace the old embed object with the fixed versiony
object.insertAdjacentHTML('beforeBegin', new_object);
object.parentNode.removeChild(object);
}
}
}
现在你可以在页面加载时使用 jQuery 运行:
$(document).ready(function () {
fix_flash();
// Call Function
});
关于flash - 如何为每个Flash对象和嵌入标签添加wmode ="transparent"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2704485/
对象标签和 iframe 标签中的 Wmode。 有很多关于使导航在 Flash 页面等中正常工作的讨论。 -有人请详细解释一下属性的实际作用。接受任何级别的技术细节。 谢谢 最佳答案 wmode是独
我有一个嵌入到html页面中的youtube播放器,加载页面后需要播放该播放器,并且由于我有一个删除播放器的按钮,因此我需要wmode = transparent,以便可以在其上方放置元素。 这是我使
我正在调试一个网页,其中包含一些未设置 wmode 的 flash 对象。我需要知道浏览器或 Flash 播放器分配给它们的值。 最佳答案 默认的 wmode 应该是 window according
我有一个嵌入的 youtube 视频,但是具有固定位置的菜单没有在它上面滚动;相反,视频在滚动时覆盖菜单。 下面的代码片段展示了我目前的尝试。 &wmode=transparent ?wmode=t
我正在使用 lightbox++ 加载 flash 之外的图像,以便完成我必须设置的工作 wmode=transparent 在对象属性中 但是这样做会减轻 swf 中使用的灰色.. 不加wmode
我有一个 flowplayer,我正在使用它下面的几个 div 标签。当您单击 div 标签时,它将在页面上显示另一个与对话框相同的 div 标签。问题是 flowplayer 将始终位于 div 之
我在涵盖YouTube本身的视频时遇到了问题,但通过更改设计解决了这一问题(不再需要涵盖它们)。 因此,我有一个用户可以运行的脚本,它调用javascript文件在当前网页上执行其他操作。它要做的一件
使用带有 jQuery 的 javascript,我添加了一个带有 youtube url 的 iframe 以在网站上显示视频,但是从 youtube 加载到 iframe 中的嵌入代码没有 w
我需要在 gpu 加速视频播放器上放置一个 flash 横幅。我在某处读到,wmode direct 非常重要。但不记得为什么。 如果我无法将 wmode 设置为不透明,我该如何在上面放置横幅? 谢谢
如何动态添加 wmode="opaque" 到已经显示的 embed 元素?在不重新加载元素的情况下,嵌入的内容不应丢失其状态。 仅使用 javascript 设置 wmode 属性是行不通的。 删除
出于商业原因,我需要使用 HTML 内容过度使用 Flash 视频播放器。这需要将 WMODE 设置为“不透明”。 然而,Flash Player Engineering Tinic Uro 警告我们
我在 Safari 中嵌入时遇到问题。它在所有其他浏览器(包括 Internet Explorer 6)上运行良好。问题是嵌入似乎跳到了最顶层,忽略了所有 z-index 或定位语句。这很重要,因为
我们正在为 facebook 编写应用程序。这是一个用 flash 编写并嵌入 wmode 窗口 的游戏。我们在 Firefox 6 上遇到问题,但仅限于 Windows XP。当用户调用某些 fac
最新版本的 chrome 似乎已经取消了我 SWF 上的透明背景。在网站上,我使用 flash 在元素之上制作透明视频。但是,在最新版本的 Chrome 下,背景现在是黑色的。 这个问题已经问了几次,
我想知道是否有任何 jQuery 插件可用于在运行时将 wmode 更改为透明。 (类似于wibiya的东西) 我试过谷歌搜索,但找不到任何确切的插件来完成这项工作。我找到的唯一资源是: http:/
我有一位客户正在将视频嵌入到他的 WordPress 博客中。问题是他们有一个很大的 CSS 下拉菜单,隐藏在 Flash 视频后面。我知道将视频的 wmode 设置为不透明可以解决此问题,但我显然需
我制作了一个 web 应用程序,我需要 html 内容在我拥有的 swf 对象之上弹出。我最终使用了 swfobject 设置 wmode: "transparent",它在除 firefox 之外的
我使用以下脚本添加 wmode="opaque"来嵌入元素: jQuery("iframe[src], embed[src]").each(function () { jQuery(this)
对于 Flash 内容,我可以设置 wmode="transparent" 并在我的 Flash 动画上显示 HTML 菜单。 Java applet 也可能有类似的东西吗? 最佳答案 根据 this
我正在开发我们的新主页,需要实现一个解决方案,该解决方案将在 iphone/ipad 和标准网络浏览器上运行视频。我用 html5media 找到了一个相当不错的解决方案 - http://code.
我是一名优秀的程序员,十分优秀!