Start Building Professional
Web Apps Today


 
Categories Question details Back To List
Question  posted by Max on Apr 30, 2009 22:24
open dhtmlx forum
Closing window with button

I'm having trouble closing a window that I created using attachHTMLString. Javascript keeps complaining that the object doesn't exist. Here is my code. Thanks for any help you can provide.

function delNode() {

var win1= new dhtmlXWindows();
var delnode = win1.createWindow('delnode', 100, 100, 300, 150);
delnode.setText("Delete Computer/Folder");
delnode.button("park").hide();
delnode.button("minmax1").hide();
delnode.denyResize();
delnode.setModal(true);
delnode.center();

if (currentSelectedId == 'root') {

delnode.attachHTMLString("<div style='padding:10px;'><table border='0'><tr><td>Cannot delete from this level.</td></tr><tr><td><input type='button' value='OK' onclick='delnode.close();'></td></tr></table></div>");

return;

}

}
Answer posted by Alex (support) on May 04, 2009 03:27

Hello, 

In your code delnode is a private variable. That is why the issue occurs.

var delnode;

function delNode() { 

var win1= new dhtmlXWindows();

delnode = win1.createWindow('delnode', 100, 100, 300, 150);
...

}

Answer posted by Max on May 04, 2009 05:20
Alex, thanks for the response, but I actually had declared 'delnode' outside of the function making it global. However, in IE it reports the following error:

delnode is null or not an object

var delnode;

function delNode() {

    var win1= new dhtmlXWindows();
    var delnode = win1.createWindow('delnode', 100, 100, 300, 150);
    delnode.setText("Delete Computer/Folder");
    delnode.button("park").hide();
    delnode.button("minmax1").hide();
    delnode.denyResize();
    delnode.setModal(true);
    delnode.center();

    var currentSelectedText = dhxTree.getSelectedItemText();

    var currentSelectedId = dhxTree.getSelectedItemId();

    if (currentSelectedId == 'root') {

        delnode.attachHTMLString("<div style='padding:10px;'><table border='0'><tr><td>Cannot delete from this level.</td></tr><tr><td><input type='button' value='OK' onclick='delnode.close();'></td></tr></table></div>");

        return;

    }

    dhxTree.deleteItem(currentSelectedId,1);

    alert('Deleted '+currentSelectedText+'!            ');

}

Answer posted by Alex (support) on May 04, 2009 05:46

Hello Max,

please remove var before delnode when you initialize window:

delnode = win1.createWindow('delnode', 100, 100, 300, 150);

instead of 

var delnode = win1.createWindow('delnode', 100, 100, 300, 150);

Answer posted by Max on May 04, 2009 08:36
Thank you. That worked and I understand why now.

Max