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

War es hilfreich?

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
scroll top