How can I call a JavaScript function defined into the "father" view that open a dialog from this dialog?

I am pretty new in JavaScript and I have the following problem.

I have a page named autorizzaFattura2.jsp that show some invoices into a table. Each table row represent a single invoice and there is a column containing an immage that clicked open a popup that show the invoice details. I do in this way:

This is the table column whre is the link to open the details dialog:

<td>
    <img onclick="openDialog2('edimon.do?serv=O.B&pk='+'<%=ci.getPk_coda()%>'+'&canale=WEB&autorizza=no','680px','500px','9')" width="16px" src="img/icona_vedidocumento.png" align=left border=0 alt="Visualizza">
</td>

that call the openDialog2() JavaScript function that open the details dialog:

function openDialog2(pagina,larghezza,lunghezza,tipo) {

    //alert("INTO openDialog2(), pagina: " + pagina, " larghezza: " + larghezza + " lunghezza: " + lunghezza + " tipo: " + tipo);

    larghezza = '950px';
    lunghezza = '470px';
    lunghezza2 = '530px';
    if (tipo == 3) {
        larghezza = '950px';
        lunghezza = '470px';
        lunghezza2 = '530px';
    }
    if (tipo == 4) {
        larghezza = '950px';
        lunghezza = '470px';
        lunghezza2 = '530px';
    }
    if (tipo == 5) {
        larghezza = '620px';
        lunghezza = '300px';
        lunghezza2 = '350px';
    }
    if (tipo == 19) {
        larghezza = '950px';
        lunghezza = '470px';
        lunghezza2 = '530px';
    }
    if (tipo == 2) {
        larghezza = '950px';
        lunghezza = '470px';
        lunghezza2 = '530px';
    }
    if (tipo == 14) {
        larghezza = '950px';
        lunghezza = '470px';
        lunghezza2 = '530px';
    }
    if (tipo == 9) {
        larghezza = '950px';
        lunghezza = '470px';
        lunghezza2 = '530px';
    }
    if (tipo == 99) {
        larghezza = '950px';
        lunghezza = '470px';
        lunghezza2 = '530px';
    }
            unitaLargo = larghezza.substring(larghezza.length - 2, larghezza.length)
            unitaLungo = lunghezza.substring(lunghezza.length - 2, lunghezza.length)

            var puntiLarghezza = 0;
            var puntiLunghezza = 0;

            if (unitaLargo != "px") {
                //per default è in percentuale
                Wlargo = (screen.width * larghezza) / 100;
                puntiLarghezza = Wlargo;
                Wlargo = Wlargo + "px";
            } else {
                Wlargo = larghezza
                puntiLarghezza = larghezza.substring(0, larghezza.length - 2);
            }

            if (unitaLungo != "px") {
                //per default è in percentuale
                Wlungo = (screen.height * lunghezza) / 100;
                puntiLunghezza = Wlungo;
                Wlungo = Wlungo + "px";
            } else {
                Wlungo = lunghezza
                puntiLunghezza = lunghezza.substring(0, lunghezza.length - 2);
            }

            var l = (screen.width / 2) - (puntiLarghezza / 2);
            var t = (screen.height / 2) - (puntiLunghezza / 2);

            DialParam = 'width=' + Wlargo + ',height=' + Wlungo + ',toolbar=no,directories=no,';
            DialParam = DialParam + 'toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no,scrollbars=yes,resizable=no';

            //alert("pagina: " + pagina);
            pag_aperta = window.open(pagina, 'popUp_', DialParam);
            pag_aperta.moveTo(l, t);
            pag_aperta.focus();


    }

Into the autorizzaFattura2.jsp page I also found this JavaScript function (implemented by someone else in the past) and this is actually not used:

function rifiutaSingolo() {

    chiudi();
    $('#myRejectNote').css("visibility", "visible");
    $('#rifiutaTable').css("visibility", "visible");
    $("#dialogReject").dialog("open");
    document.getElementById('myRejectNote').focus();
}

Ok, this works fine and in my dialog I obtain what expet. My dialog is implemented by a page named visualizzaFattura.jsp, this one:

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%
    // Per non far fare il caching...
    response.setHeader("pragma", "no-cache");
    response.setHeader("Expires", "0");
    response.setHeader("Cache-Control", "no-cache");
%>
<html>
<head>
    <title><fmt:message key="titolo" /></title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" href="css/font.css">
    <link rel="stylesheet" href="css/seldoc.css">

    <script language="JavaScript" src="script.js"></script>
    <script type="text/javascript" src="js/tables.js"></script>
</head>

<% String link = "edi.do?serv=6.1&doc=fattura&pk="+(String)request.getAttribute("pk");%>

<script>
    var link = 'edimon.do?serv=6.1&amp;doc=fattura&amp;pk=<%=(String)request.getAttribute("pk")%>';

    function gotoFrame(link){
        alert("INTO gotoFrame(), link: " + link);
        self.frames['change'].location.href = link;
    }
</script>

<body>
<%--<table width="100%" border="0" cellpadding="0" cellspacing="0">--%>
  <%--<%@ include file="data.jsp" %>--%>
<%--</table>--%>
<%--<br/>--%>
<%--<div style="text-align: center" class="blueheader16"><fmt:message key="vis_fatt" /></div>--%>
<%--<br/>--%>

<table style="width:100%" cellpadding="0" cellspacing="0" >
 <tr>
 <td>
        <table class="table-cls" ID="Tabella2" style="width: 100%">

         <tbody>
           <tr><!--javascript:document.location.href='edi.do?serv=I.3'-->
             <td style="text-align: center;  border-bottom: 0;">
               <iframe name="change" src="" style="text-align: center; width: 100%; height: 380px;" frameborder="0"></iframe>
             </td>
           </tr>
           <tr>
             <td style="text-align: center">
                 <input style="margin-right :2px" class="bottone" type="text" value="Scarica" onclick="document.location.href='<%=link%>'"/>
                 <input style="color: #FFFFFF; font: bold 10px tahoma,arial,helvetica,sans-serif" class="bottone" readonly="readonly" type="button" value="Annulla" onclick="javascript:window.close()">

                 <input style="margin-right :2px" class="bottone" type="text" value="Accetta" onclick="document.location.href='<%=link%>'"/>
                 <input style="color: #FFFFFF; font: bold 10px tahoma,arial,helvetica,sans-serif" class="bottone" readonly="readonly" type="button" value="Rifiuta" onclick="javascript:window.close()">
             </td>
          </tr>

         </tbody>
        </table>
</td>
</tr>
</table>

<script type="text/javascript">
//    $(document).ready(function () {
    gotoFrame('edimon.do?serv=L.5&pk=<%=(String)request.getAttribute("pk")%>');
//    })
</script>
</body>
</html>

As you can see in this dialog I have defined a button having value Rifiuta (the last one).

My question is: clicking on this Rifiuta button can I perform the rifiutaSingolo() JavaScript function defined into the autorizzaFattura2.jsp page (that is the page from what the user open the popup represented by the visualizzaFattura.jsp page) ? Or it does not make sense do in this way?

Tnx


Source: jsp

Leave a Reply