修复ExtAspNet_v2.3.1中的bug(window)

  在使用ExtAspNet时,发现一个bug,后台代码修改window.IFrameUrl时,会弹出一个脚本错误。经过调式后发现了问题所在。

  项目下 \ExtAspNet\js\X\X.wnd.js 文件中,找到如下位置:

   
   
   
   
// 创建或更新IFrame节点,同时更新panel实例中的自定义属性值
updateIFrameNode: function (panel, iframeUrl) {
var iframeUrlChanged = false ;
// 如果此Panel中包含有IFrame
if (panel[ ' x_iframe ' ]) {
if (iframeUrl && panel[ ' x_iframe_url ' ] !== iframeUrl) {
panel[
' x_iframe_url ' ] = iframeUrl;
iframeUrlChanged
= true ;
}
// 如果此Panel中包含的IFrame还没有加载
if ( ! panel[ ' x_iframe_loaded ' ]) {
window.setTimeout(
function () {
// 如果此Panel已经创建完毕,但有时Panel可能是延迟创建的(比如TabStrip中的Tab,只有点击这个Tab时才创建Tab的内容)
if (panel.body) {
panel[
' x_iframe_loaded ' ] = true ;
panel.body.dom.innerHTML
= _createIFrameHtml(panel[ ' x_iframe_url ' ], panel[ ' x_iframe_name ' ]);
}
},
0 );
}
else {
if (iframeUrlChanged) {
panel.body.first().dom.src
= panel[ ' x_iframe_url ' ];
}
}
}
},

  修改为:

 

   
   
   
   
// 创建或更新IFrame节点,同时更新panel实例中的自定义属性值
updateIFrameNode: function (panel, iframeUrl) {
var iframeUrlChanged = false ;
// 如果此Panel中包含有IFrame
if (panel && panel[ ' x_iframe ' ]) {
if (iframeUrl && panel[ ' x_iframe_url ' ] !== iframeUrl) {
panel[
' x_iframe_url ' ] = iframeUrl;
iframeUrlChanged
= true ;
}
// 如果此Panel中包含的IFrame还没有加载
if ( ! panel[ ' x_iframe_loaded ' ]) {
window.setTimeout(
function () {
// 如果此Panel已经创建完毕,但有时Panel可能是延迟创建的(比如TabStrip中的Tab,只有点击这个Tab时才创建Tab的内容)
if (panel.body) {
panel[
' x_iframe_loaded ' ] = true ;
panel.body.dom.innerHTML
= _createIFrameHtml(panel[ ' x_iframe_url ' ], panel[ ' x_iframe_name ' ]);
}
},
0 );
}
else {
if (iframeUrlChanged) {
panel.body.first().dom.src
= panel[ ' x_iframe_url ' ];
}
}
}
},

 

  然后执行 \ExtAspNet\js\js.bat ,最后生成项目即可。

你可能感兴趣的:(修复ExtAspNet_v2.3.1中的bug(window))