我有一个网站,其中包含闪光灯和菜单,我需要能够覆盖与菜单闪光灯,但不能使用wmode:透明或不透明,因为它影响了太多的性能。
我发现下面的插件可以通过使用iframe来实现这一点,但这在较新的浏览器中出现了问题。(在IE6/7中似乎可以开箱即用)
http://plugins.jquery.com/project/bgiframe ( Change the z index of flash content )
我在Invalid Character DOM Exception in IE9上发现了一篇文章,里面有人解释了为什么它不能工作,但我一直没能让它工作。
原始的插件代码是
$.fn.bgIframe = $.fn.bgiframe = function(s) {
// This is only for IE6
if ( $.browser.msie && /6.0/.test(navigator.userAgent) ) {
s = $.extend({
top : 'auto', // auto == .currentStyle.borderTopWidth
left : 'auto', // auto == .currentStyle.borderLeftWidth
width : 'auto', // auto == offsetWidth
height : 'auto', // auto == offsetHeight
opacity : true,
src : 'javascript:false;'
}, s || {});
var prop = function(n){return n&&n.constructor==Number?n+'px':n;},
html = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+
'style="display:block;position:absolute;z-index:-1;'+
(s.opacity !== false?'filter:Alpha(Opacity=\'0\');':'')+
'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+
'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+
'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+
'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+
'"/>';
return this.each(function() {
if ( $('> iframe.bgiframe', this).length == 0 )
this.insertBefore( document.createElement(html), this.firstChild );
});
}
return this;
};发布于 2011-05-11 19:31:19
最后,我设法重写了这个插件,它可以在IE的所有版本中覆盖内容,但在其他浏览器中并不是很成功。Firefox在不需要插件的情况下覆盖内容。
https://stackoverflow.com/questions/5873340
复制相似问题