закрытие cfwindow, использующего iframe - PullRequest
0 голосов
/ 08 февраля 2012

ПРОБЛЕМА: код, который работал для закрытия и уничтожения окна cfwindow после отправки формы - ДОЛЖЕН быть изменен для использования iFrame (для обеспечения загрузки файла). теперь «закрытие» НЕ работает.

как закрыть окно cfwwindow, содержащее iframe ... после отправки формы iframe ????

FLOW:

Основная страница -> открывает окно

окно содержит iframe; iframe -> страница звонков

страница формы -> отправить на страницу действия (та же страница)

Страница действий -> загружает файл и выполняет другую обработку формы - закрывает окно.

=====

ПРИМЕЧАНИЕ: я сократил код до сути - для простоты чтения ... если блоки JS должны (или 'должны') перейти в другое место и на них будут ссылаться другим способом - пожалуйста, дайте мне знать ...

БАЗОВАЯ СТРАНИЦА - basePage.cfm:

<script>
    function launchWin(name,url) {
        ColdFusion.Window.create(name+'_formWindow', name, url, 
    {   height:500,
        width:500,
        modal:true,
        closable:true, 
        draggable:true,
        resizable:true,
        center:true,
        initshow:true, 
        minheight:200,
        minwidth:200 
    })
}
</script>
<a href="javascript:launchWin( 'Attachment', 'iframe.cfm?id=101' );" >ATTACH</a>
<DIV ID="myContent"></div>

===========================================

СТРАНИЦА ОКНА - iframe.cfm - (iframe):

<iframe src="attachment.cfm?id=101"></iframe>

===========================================

IFRAME SRC - attachment.cfm (примечание - этот код работал b4, помещая его в iFrame):

<script>
ColdFusion.Window.onHide( 'Attachment_formWindow', cleanup );
function cleanup() {
    ColdFusion.Window.destroy( 'Attachment_formWindow', true );
}
</script>


<!--- HANDLE THE FORM --->
<cfif structKeyExists( FORM, 'add_Attachment' )  >
    <!--- Do CFFILE to handle file upload --->
    <cffile action="upload"
            destination="C:\"
            filefield="theFile"
            nameconflict="makeunique">
    <!--- other form processing goes here (not relevant to question at hand) --->
    <!--- refresh the calling page, and close this window - destroy it so contents don't presist --->
    <script>
        ColdFusion.navigate( 'basePage.cfm?', 'myContent' );
        ColdFusion.Window.hide( 'Attachment_formWindow' );
    </script>       
</cfif>


<!--- form to get information --->
<cfform name="attachmentForm" enctype="multipart/form-data"  >
<table>
    <tr><td>FILE:</td><td><cfinput type="file" name="theFile" size="40" /></td></tr>
    <tr><td>TITLE:</td><td><cfinput type="text" name="name" value="" size="40" maxlength="100" /></td></tr>
    <tr><td>DESCRIPTION:</td><td><cftextarea name="description" cols="40" rows="10"></cftextarea></td></tr>
    <tr><td></td><td><cfinput type="submit" name="add_Attachment" value="Add" /></td></tr>
</table>
</cfform> 

1 Ответ

1 голос
/ 09 февраля 2012

Когда вы перемещаете код в iframe, вы должны изменить ссылки в javascript для ссылки на parent., поскольку iframe представляет свой собственный дочерний контекст (по сравнению с div, который находится в исходном контексте).

Попробуйте это:

<script>
parent.ColdFusion.Window.onHide( 'Attachment_formWindow', cleanup );
function cleanup() {
    parent.ColdFusion.Window.destroy( 'Attachment_formWindow', true );
}
</script>


<!--- HANDLE THE FORM --->
<cfif structKeyExists( FORM, 'add_Attachment' )  >
    <!--- Do CFFILE to handle file upload --->
    <cffile action="upload"
            destination="C:\"
            filefield="theFile"
            nameconflict="makeunique">
    <!--- other form processing goes here (not relevant to question at hand) --->
    <!--- refresh the calling page, and close this window - destroy it so contents don't presist --->
    <script>
        parent.ColdFusion.navigate( 'basePage.cfm?', 'myContent' );
        parent.ColdFusion.Window.hide( 'Attachment_formWindow' );
    </script>       
</cfif>


<!--- form to get information --->
<cfform name="attachmentForm" enctype="multipart/form-data"  >
<table>
    <tr><td>FILE:</td><td><cfinput type="file" name="theFile" size="40" /></td></tr>
    <tr><td>TITLE:</td><td><cfinput type="text" name="name" value="" size="40" maxlength="100" /></td></tr>
    <tr><td>DESCRIPTION:</td><td><cftextarea name="description" cols="40" rows="10"></cftextarea></td></tr>
    <tr><td></td><td><cfinput type="submit" name="add_Attachment" value="Add" /></td></tr>
</table>
</cfform> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...