2013-09-12 2 views
1

мы используем SmartGWT LGPL 4.0, и теперь мы возимся с загрузкой файла с обратным вызовом, используя скрытый iFrame (дефинированный на том же холсте, что и DynamicForm). В ответе от сервера после загрузки файла мы отправляем обратно некоторый тестовый код javascript, например, выполняемые предупреждения. Проблема возникает при попытке получить доступ к JSNI-методу, определенному в том же файле DynamicForm, что и public static. В javascript-коде, отложенном в ответ, мы вызываем метод через «window.parent.document.callbackMethod()», но мы получаем сообщение о том, что функция не определена. Кажется, что «window.parent.document» не является надлежащим способом доступа к внешнему документу в DOM, сгенерированном SmartGWT.Доступ к внешней функции JSNI из iFrame

Исключение скрытого iFrame и метода обратного вызова в том же холсте, что и DynamicForm правильно?

Есть некоторый код:

1.- Клиент:

.... 
NamedFrame iFrame = new NamedFrame(nombreIFrame); 
iFrame.setVisible(false); 
iFrame.setWidth("1px"); 
iFrame.setHeight("1px"); 
..... 
dynamicForm = new DynamicForm(); 
dynamicForm.setTarget(nombreIFrame); 
dynamicForm.setAction("rest/archivo/add"); 
dynamicForm.setCanSubmit(true); 
.... 

//JSNI 
public native void miFuncion() /*-{ 
    $wnd.alert('Hello'); 
}-*/; 

2.- сервер 1 (он работает)

... 
@Produces({ MediaType.TEXT_HTML }) 
public String upload(...){ 
... 
return "<script>alert('Hello')</script>" 
} 

3.- Сервер 2 (Безразлично» т)

... 
@Produces({ MediaType.TEXT_HTML }) 
public String upload(...){ 
... 
return "<script>window.parent.document.miFuncion()</script>" 
} 

С уважением

  • Browser: Firefox 20,0
  • ОС: Ubuntu 11,10
  • SmartClient Версия: v9.0p_2013-07-14/LGPL Разработка только (встроенный 2013-07-14)

ответ