修复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 ,最后生成项目即可。

posted @ 2010-07-03 14:17  ajayumi  阅读(412)  评论(0编辑  收藏  举报