/**
* Created by seeker910 on 2014/9/2.
*/
Rsd.define('Rsd.control.IframeBox', {
extend: 'Rsd.control.Component',
requires: ['Rsd.data.Ajax'],
xtype:'iframe',
ctrlTagName: 'iframe',
src:'javascript:void(0);',//显示空白页,避免显示404
method:'GET',
zoom:1,
"timeout":100,
/**
* iframe onload 事件
*/
onload:null,
/**
*
* @param {*} config
*/
constructor: function IframeBox(config) {
config = config || {};
this.apply(config);
},
/*
* */
onAfterInit:function onAfterInit()
{
var me = this;
this.callParent();
if(!me.ctrl.element.onload)
{
me.ctrl.element.onload = function(evt){
if(me.onload)
{
me.funApplyByIOC(me.onload,[evt]);
}
};
}
if( me.ctrl.element.srcdoc==undefined || me.ctrl.element.srcdoc== "")
{
setTimeout(function(){
me.ctrl.element.src = me.src;
},me.timeout);
}
else
{
// 在加载失败时,延时重复加载
var _count = 0;
var ajax = new Rsd.data.Ajax({url:me.src,method:me.method,dataType:'text'});
var _fn = function ()
{
_count++;
var _key = setTimeout(function(){
_fn();
}, 200*_count);
ajax.request({},function(resp){
me.ctrl.element.srcdoc = resp;
clearTimeout(_key);
});
}
_fn();
}
},
/*
* */
setSrc:function setSrc(src){
this.src = src;
if(this.isRendered()) {
this.ctrl.element.src = this.src;
}
}
});