Hi Andrew, I have checked the aa.js api. i think you refer to this function getGlobalScriptsDeclarationsList. I did overwrite this function in my jsp page and return an array of global variable. but the tomahawk popup window still not popup as what I expected. any idea about this? The way how do I get the htmlpopup client id is by viewing the jsp source code and get the html popup id from there. When I reload the page I can see the htmlpopup global variable still remain the same. the code in getGlobalScriptsDeclarationsList is straight forward (delcare an array, add an string object and return the array), something like this:
AjaxAnywhere.prototype.getGlobalScriptsDeclarationsList = function(script) { var gloVar = new Array(); gloVar.push('Tree2Id_3A0_3A_5Fid9Popup'); return gloVar; } At the moment I haven't found a way how to pass a htmlpopup client id to my page. I am thinking of storing the htmlpopup client id in a static HashMap in a class. but i don't think this is a good way. any suggestion for this? Thanks, Pdt pdt_p wrote: > > Hi Andrew, > > Thank you for your help. I will give it a try. > > Thanks, > > Pdt > > > Andrew Robinson-5 wrote: >> >> Sorry, just remembered after saying that, I think I did have to setup >> some kind of registration with javascript (check the aa.js API) that >> told AA that the variable was a global variable and AA will >> automatically set a window variable from the var. >> >> FYI, the code that sets the variable gets the ID from: >> >> String popupId = >> JavascriptUtils.getValidJavascriptName(clientId+"Popup",false); >> >> On 8/16/07, Andrew Robinson <[EMAIL PROTECTED]> wrote: >>> It should work fine without any additional code. BTW - I stopped using >>> AA a long time ago, and now switched to Trinidad from A4J >>> >>> On 8/16/07, pdt_p <[EMAIL PROTECTED]> wrote: >>> > >>> > Hi Andrew, >>> > >>> > Just wondering, have you able to integrate ajaxanywhere with tomahawk >>> popup? >>> > >>> > Thanks, >>> > >>> > Pdt >>> > >>> > >>> > Andrew Robinson-5 wrote: >>> > > >>> > > Wondering if anyone has a work around for this... >>> > > >>> > > The tomahawk popup (1.1.2) is not AJAX friendly, at least not >>> AjaxAnywhere >>> > > friendly. >>> > > >>> > > The popup creates the following javascript in the renderer: >>> > > String popupId = JavascriptUtils.getValidJavascriptName >>> > > (clientId+"Popup",false); >>> > > >>> > > ResponseWriter writer = context.getResponseWriter(); >>> > > writer.startElement(HTML.SCRIPT_ELEM, uiComponent); >>> > > writer.writeAttribute(HTML.SCRIPT_TYPE_ATTR, >>> > > HTML.SCRIPT_TYPE_TEXT_JAVASCRIPT,null); >>> > > writer.writeText("var "+popupId+"=new >>> > > orgApacheMyfacesPopup('"+clientId+"',"+ >>> > > >>> (displayAtDistanceX==null?-5:displayAtDistanceX.intValue >>> > > ())+","+ >>> > > >>> (displayAtDistanceY==null?-5:displayAtDistanceY.intValue >>> > > ())+");",null); >>> > > writer.endElement(HTML.SCRIPT_ELEM); >>> > > >>> > > As you can see, it uses the "var" syntax. To get JavaScript to load, >>> > > AjaxAnywhere will execute an eval on the JavaScript contents. As a >>> result, >>> > > this variable will immediately lose scope and not be available to >>> code on >>> > > the page. >>> > > >>> > > If it was "window[" + popupId + "]" = new ..." it would bind the >>> > > javascript >>> > > variable to the window (the recommended method of having a global >>> > > variable). >>> > > >>> > > >>> > > Has anyone come across this, and if so, found a workaround? >>> > > >>> > > -Andrew >>> > > >>> > > >>> > >>> > -- >>> > View this message in context: >>> http://www.nabble.com/Tomahawk-popup---AjaxAnywhere-tf1637487.html#a12192138 >>> > Sent from the MyFaces - Users mailing list archive at Nabble.com. >>> > >>> > >>> >> >> > > -- View this message in context: http://www.nabble.com/Tomahawk-popup---AjaxAnywhere-tf1637487.html#a12195190 Sent from the MyFaces - Users mailing list archive at Nabble.com.