我正在使用 jQuery oembed 插件来显示来自 Vimeo 提要的视频。
唯一的问题是它们显示在我的导航菜单顶部。我尝试设置菜单的 z-index 但这没有什么区别。
一个常见的建议似乎是将 wmode 参数设置为透明或不透明。但是,将 this 作为参数传递给 oembed 函数没有任何区别。
谢谢
您可以使用自己的回调函数来处理返回的代码,因此可以在插入之前对其进行修改。
这有点难看,但我希望有人可以改进:
$(".oembed").oembed(null, null, function(container, oembed) {
if (oembed == null)
return;
if (oembed.type == "video" && oembed.code != null) {
if (oembed.code.indexOf("wmode") < 0) {
oembed.code = oembed.code.replace("<embed ", "<param name=\"wmode\" value=\"transparent\"></param>\n<embed ");
oembed.code = oembed.code.replace("<embed ", "<embed wmode=\"transparent\"");
}
}
$.fn.oembed.insertCode(container, "replace", oembed);
});
问候,
理查德。
您好,感谢代码共享。
我在'var code = -----;'之前添加了以下内容 到 jquery.oembed.js 中的 getVideo... 函数体,它可以工作。只是相应地修改了变量。
if (oembed.code.indexOf("wmode") < 0) { oembed.code = oembed.code.replace("\n }
它简单易行。
谢谢,阿尤布
我有同样的问题,这是我的解决方案:
var fixZindex = function(){
$(".oembed").css('z-index','1').css('position','relative');
$("object").css('z-index','1').css('position','relative');
$("embed").css('z-index','1').css('position','relative');
var elements = document.getElementsByTagName('embed');
for(var i=0; i< elements.length; i++){
elements[i].setAttribute("wmode","transparent");
var para = document.createElement("param");
para.setAttribute("name","wmode");
para.setAttribute("value","transparent");
elements[i].parentNode.appendChild(para)
}
}
$(document).ready(function() {
$(".oembed").oembed(null,
{
embedMethod: "append",
maxWidth: 500
});
setTimeout('fixZindex()',1000);
});
我为 js/jquery 的混合道歉。无论如何,我都不是 jquery 专家,所以如果有人可以用直接的 jquery 重新编码该解决方案,那将是 rad。