هل يعمل البرنامج المساعد Bgiframe مع JQuery 1.3.x؟
سؤال
مع 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;
};
لا تنتمي إلى StackOverflow