Hallo,
manchmal habe ich den Drang aus der Matrix auszubrechen, aber ihr wisst ja wie die Wirklichkeit ist :o)
Hast Du nun Dein "Problem" schon gelöst?
Verschiebe doch einfach die Wertzuweisung vor das if und prüfe dann im if die Variable:
...
td2.rp_child = entry.eval( (cm_x + rp_contextMenueData["divWidth"]-7), (cm_y+counter*20+14) );
if( td2.rp_child ){
alert(td2.rp_child)
...
Dann passiert was anderes obwohl es ja eigentlich das gleiche ist ;-)). Ob es das ist, was Du willst? Jedenfalls wird td2.rp_child nie was Anderes als false.
Mein Erklärungsversuch für die eigentlich nicht zu erklärende Reaktion (x=false; if(x)...; vs. if (x=false)...;) :
Du überbeanspruchst den Kinderkram JavaScript, indem Du eine Methode (eval()) eines selbst erzeugten Objektes (entry) rekursiv (in sich selbst) aufrufst. Drei Dinge auf einmal ... ;-)).
Schreibe einen eigenen Client für Dein CMS, wenn es wirklich so nutzerfreundlich sein soll. Browser sind zum Browsen gedacht. Siehe hierzu auch die Diskussion über eigene Kontextmenüs im Browser.
viele Grüße
Axel