Hi there,

I have a page that contains two commandLinks:

    <h:commandLink
        value="#{msgs.button_export}"
        action="#{reportTemplateMgmt.exportReportTemplate}"
        styleClass="button">
        <f:param name="objectId" value="#{reportTemplate.id}"/>
    </h:commandLink>

    <h:commandLink
        value="#{msgs.button_generate}"
        onclick="openPopup()"
        styleClass="button"/>

The first link generates a file on the server that the user can then save with 
the usual save/open dialog box of IE. The page does not get refreshed.

The second link opens a popup window and also causes the parent window to 
reload because the onclick is extended with oamSubmitForm.

There is an interesting problem with this on IE 7 (works fine in FireFox): When 
the user clicks on the first link the file is offered for saving/opening. When 
he then clicks on the second link the popup window is openend. However, the 
first link is also executed.

I think the reason for this is because the first link sets the hidden element 
formName + ":" + "_clid" as found in oamSubmitForm. When the user clicks on the 
second link this hidden element is set again. However, for some reason IE 
cannot find the element in the form and adds another hidden input field for 
this element. I put a few debug statements in a copy of oamSetupForm to check 
what's going on. The function oamSetupForm uses the following line to check 
whether the hidden element is already in the form:

    if(typeof form.elements[name]=='undefined')

This, in fact, returns undefined. When I manually walk through all elements in 
the form using

    var els = form.elements;
    for (var i = 0; i < els.length; i++) {
    }

then the element is found. I could not reproduce this behaviour in a simple 
test file. It would always find the hidden element after it had been added.

Since the linkId of the first link is sent together with the linkId of the 
second link both get executed.

Did anyone else encounter this problem? What's the best way to solve this?

Thanks,
Roland

Reply via email to