我试图在页面完全加载到vaadin后加载我的脚本标记或一些jquery函数。我使用javascript注释来加载我的外部js。像这样 @JavaScript( “vaadin://themes/custom/resources/js/custom.js”);
在html中创建页面加载或dom对象后,有什么方法可以调用一些js函数。
答案 0 :(得分:0)
是的,有。试试这种方法:
import com.vaadin.ui.JavaScript;
...
StringBuilder script = new StringBuilder();
script
.append("var head = document.getElementsByTagName('head')[0];")
.append("var script = document.createElement('script');")
//...do other stuff to set up the "script" tag (add content, source, whatever)
.append("head.appendChild(script);");
JavaScript.getCurrent().execute(script.toString());
如果您在页面完全加载之前执行此操作,那么一切都很好。但是如果你想在事后(通过一些事件或点击监听器)这样做,你还必须使用Vaadin push将JavaScript推送到客户端。像这样:
import com.vaadin.ui.UI;
...
UI.getCurrent().access(new Runnable()
{
@Override
public void run()
{
//code from above that leads to JavaScript.getCurrent().execute(...)
UI.getCurrent().push();
}
});
当然,这假设您在Vaadin应用程序中启用了推送功能。参考https://vaadin.com/book/-/page/advanced.push.html
答案 1 :(得分:-1)
根据the docs,在custom.js
$(document).ready(function() {
//call your function
});