@JavaScript вызов функции в клиенте (подставить логин пользователя в формочку входа)

Подскажите пожалуйста как вызвать функцию из файла *.js
test.js

function fff(){
	alert('1111');
};
@JavaScript({"test.js"})
public class Screen extends AbstractWindow {
    public void onButton_1Click() {
    	Page.getCurrent().getJavaScript().execute("fff()");
    }
}

не работает:sleepy: выдает

SEVERE: Error performing server to client RPC calls
com.google.gwt.core.client.JavaScriptException: (ReferenceError) : fff is not defined

Планирую вызвать функция и использовать то что она вернет Куда копать, подскажите пожалуйста?

Привет!

Посмотри тут 4.7.4.3. Подключение JavaScript библиотеки.
Также в интернетах есть примеры по Vaadin.

1 симпатия

что то не видит он мой файл *.js где он должен лежать?

В документации написано так

Аннотации @JavaScript и @StyleSheet указывают на файлы, которые должны быть загружены на веб-страницу. В нашем примере это JavaScript файлы библиотеки jQuery UI и коннектора, а также файл со стилями для jQuery UI. Расположим их в одном Java-пакете с серверным компонентом.

1 симпатия

я планирую узнать логин пользователя который открыл страницу с помощью
var network = new ActiveXObject вызванного из *.js и подставить его в формочку при логировании , это возможно?

в инете есть : указываешь файл *.js он подгружается и выполняется функция из него а тут не получается (компаненты это еще больно круто, тут хотябы функцию из файла выполнить на стороне клиента)
Может я ваще что-то не то делаю:( подскажите пожалуйста

Логин пользователя есть в составе сущности user. Текущего пользователя можно получить через UserSessionSource. Зачем тут js?!

Здравствуйте,

Аннотацию @JavaScript можно использовать только с классами Vaadin, не с экранами.

P.S. пожалуйста, используйте ``` для обрамления блоков кода.

1 симпатия

я хотел до входа подставить логин пользователя в формочку идентификации, но это не возможно. А так очень помогла Воспроизведение звуков

Спасибо!

Почему невозможно? Есть AppLoginWindow и эту логику можно зашить в него. Если Вы хотите получить пользователя ПК или домена не обязательно даже привлекать для этого js.

1 симпатия

ок спасибо проработую в этом направлении. И вот еще вопрос а возможно подключить
http://austenpayan.github.io/skippr/ например используя htmlBox т.е. в нем помимо
<div location="email" class="email"></div> cuba компонентов еще добавить как они требуют

 <div id="container"  height="200" width="200">
            <div id="theTarget" height="200" width="200">
                <div style="background-image: url(img/image1.jpg)"></div>
                <div style="background-image: url(img/image2.jpg)"></div>
                <div style="background-image: url(img/image3.jpg)"></div>
                <div style="background-image: url(img/image4.jpg)"></div>
                <div style="background-image: url(img/image5.jpg)"></div>
            </div>    
        </div>

в итоге и skipper работал и я б еще с помощью CUBA что-нибудб выводил на страницу
console.log($("#theTarget")); находит но пока ничего не видно. Должно подключиться?

Не используйте для этого HtmlBoxLayout - это контейнер, в нем не разрешен JS. Используйте BrowserFrame.

3 симпатии

Можно попробовать на polymer запилить.

Не используйте для этого HtmlBoxLayout - это контейнер, в нем не разрешен JS. Используйте BrowserFrame.

Юрий, а есть возможность прямо цитату Вашу в документацию поставить? Честно говоря, тоже на это напарывался. Мне кажется, будет полезным в будущем.

2 симпатии

Да, конечно добавим в документацию.

2 симпатии