Javascript 使用bgiFrame(ie6插件)覆盖不使用wmode交叉浏览器的flash内容
我有一个包含flash和菜单的站点,我需要能够将flash与菜单叠加,但不能使用wmode:transparent或不透明,因为它对性能影响太大 我发现了下面的插件,它通过使用iframe实现了这一点,但在较新的浏览器中,这一点已经过时了。(在ie6/7中似乎是开箱即用) () 我在这里找到一个帖子,有人解释为什么它不工作,但我一直没能让它工作 原始插件代码是Javascript 使用bgiFrame(ie6插件)覆盖不使用wmode交叉浏览器的flash内容,javascript,Javascript,我有一个包含flash和菜单的站点,我需要能够将flash与菜单叠加,但不能使用wmode:transparent或不透明,因为它对性能影响太大 我发现了下面的插件,它通过使用iframe实现了这一点,但在较新的浏览器中,这一点已经过时了。(在ie6/7中似乎是开箱即用) () 我在这里找到一个帖子,有人解释为什么它不工作,但我一直没能让它工作 原始插件代码是 $.fn.bgIframe = $.fn.bgiframe = function(s) { // This is only fo
$.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;
};
$.fn.bgIframe=$.fn.bgIframe=函数{
//这只适用于IE6
if($.browser.msie&&/6.0/.test(navigator.userAgent)){
s=$.extend({
top:'auto',//auto==.currentStyle.borderTopWidth
左:“自动”,“自动==.currentStyle.borderLeftWidth”
宽度:'auto',//auto==offsetWidth
高度:'auto',//auto==offsetHeight
不透明度:对,
src:'javascript:false;'
},s |{});
var prop=function(n){返回n&&n.constructor==Number?n+'px':n;},
html='';
返回此值。每个(函数(){
if($('>iframe.bgiframe',this).length==0)
this.insertBefore(document.createElement(html),this.firstChild);
});
}
归还这个;
};
最后,我成功地重写了插件,使内容能够覆盖在IE的所有版本中,但在其他浏览器中并不十分成功。Firefox无需插件即可覆盖内容