как получить доступ к результатам сервлета из iFrame? - PullRequest
0 голосов
/ 28 ноября 2010

Я использую JavaScript. Я использую iframe для загрузки файла в сервлет. Я использую сервлет Java, который правильно получает сообщение и возвращает объект gson. Однако я не могу получить доступ к возвращенному объекту из iframe.

Вот форма

<form name='myform' id='myform' method="POST" enctype="multipart/form-data" action="http://localhost:9090/myServlet" target="myFrame" > 
<td> <input type="file" size=20 name="fname"> </td> 
<td> <input type="Submit" value="Upload"> </td> </form> 
</tr></table>
<iframe src="" id="myFrame" name="myFrame" style="width: 110px; height: 110px;">
    <script type="text/javascript">
    var accountList=null;
    </script>
</iframe> 

сервлет делает все, что ему нужно, и возвращает

 > response.setContentType("text/html");
    > response.getWriter().println("<html><body
    > onload=\"window.parent.uploadComplete();\">"+
    >                     "<div id='resu' name='resu'>" +
    >                     gsonTable+
    >                     "</div>"+
    >                     "</body></html>");     response.getWriter().close();

где gsonTable: {"псевдоним": "defaultStatname", "дата": "01.01.2010 /"}

как мне получить объект gson из div?

В моей функции

function uploadComplete() {
    var frame=parent.document.getElementById('myFrame');
    var pippo=frame.contentDocument;
    var div = pippo.getElementById('resu');
    var myvar=div.innerHTML;
    myvar=eval(myvar); }

когда я выполняю eval (myvar), я получаю «недопустимый ярлык» Я очень удивлен, потому что, будучи объектом gson, хорошо бы проверить строку. Я уверен, что где-то совершаю ошибку, но не могу ее найти. Может быть, мне вообще не следует хранить объект gson в div, и есть лучшее решение. Любая помощь будет отличной / f

1 Ответ

0 голосов
/ 28 ноября 2010

Я нашел решение.Я думаю, что я был довольно наивным здесь.Я объявляю переменную в iframe и назначаю ее в сервлете переменной gson в html iFrame.Затем я читаю переменную в функции uploadComplete.Вот он

<form name='myform' id='myform' method="POST" enctype="multipart/form-data" action="http://localhost:9090/bankUI/loadaccountstatement" target="myFrame" > 
<td> <input type="file" size=20 name="fname"> </td> 

<td> <input type="Submit" value="Upload"> </td> </form> 
</tr></table>
<iframe src="" id="myFrame" name="myFrame" style="width: 110px; height: 110px;">
    <script type="text/javascript">
    var newStatement;
    </script>
</iframe>

код сервлета:

response.setContentType("text/html");
                        response.getWriter().println("<html><body onload=\"window.parent.uploadComplete();\">"+
                                "<script type=\"text/javascript\">" +
                                "parent.document.newStatement = "+gsonTable+";" +
                                "</script>"+
                                "<div> </div>"+
                                "</body></html>");
                        response.getWriter().close();

функция

function uploadComplete() {
    //the variable newStatement in the iframe containing the returned variable
    var stat=parent.document.newStatement;
    //assigning a variable in the general context
    var myVar=this.currentSession=stat;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...