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