мы используем 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)