0

基于谷歌搜索,我发现 Vaadin 8 使用名为 BrowserFrame 的类(例如https://vaadin.com/docs/v7/framework/components/components-embedded.html)有一个很好的“iFrame”支持,或者只是见下文:

BrowserFrame browser = new BrowserFrame("Browser",
    new ExternalResource("http://demo.vaadin.com/sampler/"));
browser.setWidth("600px");
browser.setHeight("400px");
layout.addComponent(browser);

但是,这在 Vaadin 12 中不存在。是否有推荐的方法在 Vaadin 12 中创建 iFrame 组件?到目前为止,我通过创建一个 vaadin12 html 组件来破解它,它允许我将任何旧的 html 放入其中,如下所示:

MainApp.iFrameHelp = new Html("<iframe src=\"https://docs.readthedocs.io/en/latest/intro/getting-started-with-sphinx.html/intro/getting-started-with-sphinx.html\"></iframe>");

. 但是,如果这是在 Vaadin 12 中执行此操作的“唯一/正确”方式,那么我怎样才能让这个 html 组件用新页面“更新”。(我注意到一旦创建了 html 组件,就没有“setValue”方法将 html 重置为新值。此外,即使您执行“myHtmlComponent = new Html(...)”之类的操作,它也不会似乎刷新了最终的用户界面....(至少,不在我的代码中。)想法?

4

1 回答 1

1

IFrameVaadin 13 中引入了一个组件: https ://github.com/vaadin/flow/pull/4898 。Vaadin 13 目前处于测试阶段,将于 3 月初完成最终版本。

该组件中不应该有任何东西不能与 Vaadin 12 一起使用,因此您很可能只需从https://github.com/vaadin/flow/blob/master/flow-html-复制实现即可components/src/main/java/com/vaadin/flow/component/html/IFrame.java到您自己的 Vaadin 12 项目中并按原样使用它。

于 2019-02-19T07:25:45.033 回答