هل يعمل البرنامج المساعد Bgiframe مع JQuery 1.3.x؟

StackOverflow https://stackoverflow.com/questions/577739

  •  05-09-2019
  •  | 
  •  

سؤال

مع jQuery 1.2.6 أود أن أفعل أدناه وكان كل شيء على ما يرام

$("#element").bgiframe();

ولكن الأمثلة الوحيدة التي رأيتها تعمل مع JQuery 1.3.x (المعروضة أدناه)

$("#element").bgiframe = true;

ولكن ما سبق لا يعمل ... فهل لديه أي شخص مكون إضافي جديد للقيام بهذا النوع من الأشياء؟

تحرير: أنا أستخدم هذا البرنامج المساعد خارج JQuery.UI، والإصدار الذي أستخدمه هو 2.1.1

هل كانت مفيدة؟

المحلول

أدركت إذا قمت فقط بتعديل رمز JS في البرنامج المساعد القديم، فسوف يعمل مع JQuery 1.3.x

أدناه هو النسخة النهائية لهذا البرنامج المساعد - العمل 100٪ W / JQUERY 1.3.1

بسبب تعارض W / الاسم الذي اضطررت لإعادة تسميته إلى BBgiframe (بدلا من BGIFRame)

لذلك عند الاتصال به القيام بذلك كما يلي:

$("#element").bbgiframe();

الآن رمز البرنامج المساعد المنقح:

$.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;
};
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top