Ist die bgiframe Plugin Arbeit mit jQuery 1.3.x?
Frage
Mit jQuery 1.2.6 Ich würde das unten tun und alles war gut
$("#element").bgiframe();
Aber die einzigen Beispiele habe ich mit jQuery 1.3.x gesehen arbeiten (siehe unten)
$("#element").bgiframe = true;
Aber die oben funktioniert nicht ... so hat jemand ein neues Plugin hat diese Art der Sache zu tun?
EDIT: Ich benutze dieses Plugin außerhalb von jQuery.UI und die Version ich verwende ist 2.1.1
Lösung
Ich erkennen, wenn ich den js Code in dem alten Plugin nur zwicken, es würde mit jQuery 1.3.x arbeiten
Die unten ist die endgültige Version dieses Plug-in - arbeitet 100% w / jQuery 1.3.1
Wegen eines Konflikts w / Namen ich es umbenennen musste, um bbgiframe (statt bgiframe)
Also, wenn Sie es so tun, rufen Sie wie folgt vor:
$("#element").bbgiframe();
Nun ist der überarbeitete Plugin-Code:
$.fn.bbgiframe = 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="bbgiframe"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.bbgiframe', this).length == 0 )
this.insertBefore( document.createElement(html), this.firstChild );
});
}
return this;
};
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow