2010-11-28 4 views
0

Я использую javascript. Я использую iframe для загрузки файла в сервлет. Я использую Java-сервлет, который правильно получает сообщение и возвращает объект gson. Однако я не могу получить доступ к возвращенному объекту из iframe.Как получить доступ к результатам сервлета из 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", "Дата": "1/1/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 объект он должен быть штраф Eval строку. Я уверен, что я ошибаюсь, но не могу найти его. Возможно, я не должен хранить объект gson в div вообще, и есть лучшее решение. Любая помощь будет замечательной /f

ответ

0

Я нашел решение. Я думаю, что я был очень наивным здесь. Я объявляю переменную в iframe и назначаю ее в сервлет переменной gson в iFrame html. Затем я прочитал переменную в функции 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; 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^