在这里遇到一个问题,我已经尝试了我能想到的一切但却无法让它发挥作用。我有一个页面,其链接创建了一个像这样的cfwindow
function create_window(ID){
var config = new Object();
config.modal=true;
config.center=true;
config.height=775;
config.width=700;
config.resizable=false;
config.closable=false;
config.draggable=false;
config.refreshonshow=true;
ColdFusion.Window.create('newWindow','Window Title', '/source/url'+ID, config)
创建窗口并且URL具有解析它的ID,用于在窗口中显示正确的项目。一切正常。
问题是当我尝试关闭窗口并打开一个显示不同项目的新窗口时,URL不会更改。我意识到这是因为窗口被隐藏,而不是被破坏,因此它是被打开的窗口。所以我创建了一个onHide事件处理程序来销毁这样的窗口。
function showItemDetails(){
var ID=document.getElementById("sList").value
create_window(ID);
ColdFusion.Window.onHide('newWindow', refreshList);
}
function refreshList(){
ColdFusion.bindHandlerCache['sList'].call();
ColdFusion.Window.destroy('newWindow',true);
}
现在,当我关闭窗口时,Firebug返回错误“ColdFusion.Window.destroy不是函数”(在IE中,错误是“对象不支持此属性或方法”)。我确保我们在服务器上运行最新版本的ColdFusion 8.01(因为我知道.destroy在8.01之前没有添加)并且已经将最新的修补程序应用到服务器上。
有什么想法吗?
答案 0 :(得分:2)
不幸的是,ColdFusion.Window.destroy()
并没有真正破坏是一个已知的错误。我不确定他们是否已经将它固定在CF9中,但它在CF8中肯定是不固定的。
使用ColdFusion.navigate()作为解决方法。而不是销毁窗口,重用相同的窗口并将其导航到其他URL。
答案 1 :(得分:0)
编辑:请改为尝试:
function refreshList(){
ColdFusion.bindHandlerCache['sList'].call();
var newWindow = ColdFusion.Window.getWindowObject('newWindow');
newWindow.close();
}
我认为这更接近,每Adobe's docs ...