【发布时间】:2019-04-05 18:55:28
【问题描述】:
嘿,我已经有一段时间了。到目前为止,我似乎无法从我所看到的所有示例中得到正确的答案。这似乎很容易,但我输了。
我的 HTML:
WebView webView = new WebView();
webView.getEngine().setJavaScriptEnabled(true);
webView.setContextMenuEnabled(false);
webView.getEngine().loadContent(""+
"<!DOCTYPE html>\r\n" +
"<html>\r\n" +
"<head>\r\n" +
"</head>\r\n" +
"<body>" +
"<div class=\"chatbox\" style=\"document.body.style.overflow = 'hidden';\">\r\n" +
" <div class=\"chatlogs\">\r\n" +
" <div class=\"animated animatedFadeInUp fadeInUp\">" +
" <div class=\"chat friend\">\r\n" +
" <div class=\"user-photo\"><img src=\"" + pic1 + "\"></div>\r\n" +
" <p class=\"chat-message\">Whats up!</p>\r\n" +
" <span class=\"timefriend\">11:01pm Oct 25 2019</span>\r\n" +
" </div>\r\n" +
" </div>" +
" <div class=\"animated animatedFadeInUp fadeInUp\">" +
" <div class=\"chat self\">\r\n" +
" <div class=\"user-photo\"><img src=\"" + pic2 + "\"></div>" +
" <p class=\"chat-message\">Not much yo!</p>\r\n" +
" <span class=\"timeself\">11:01 PM | Oct 11 2019</span>\r\n" +
" </div>\r\n" +
" </div>\r\n" +
" <div class=\"animated animatedFadeInUp fadeInUp\">" +
" <div class=\"chat friend\">\r\n" +
" <div class=\"user-photo\"><img src=\"" + pic1 + "\"></div>" +
" <p class=\"chat-message\">Whats up!</p>\r\n" +
" <span class=\"timefriend\">11:01 PM | Oct 11 2019</span>\r\n" +
" </div>\r\n" +
" </div>\r\n" +
" <div class=\"animated animatedFadeInUp fadeInUp\">" +
" <div class=\"chat friend\">\r\n" +
" <div class=\"user-photo\"><img src=\"" + pic1 + "\"></div>" +
" <p class=\"chat-message\">Whats up!</p>\r\n" +
" <span class=\"timefriend\">11:01 PM | Oct 11 2019</span>\r\n" +
" </div>\r\n" +
" </div>\r\n" +
" <div id=\"nextChatHolder\"></div>" +
" </div>\r\n" +
" </div>\r\n" +
" <div class=\"footer\"></div>" +
" <script language=\"javascript\">\r\n" +
" function app.test() {\r\n" +
" window.scrollBy(0, 20); \r\n" +
" alert('done');\r\n" +
" }\r\n" +
" </script>" +
"</body>\r\n" +
"</html>");
这是我正在使用的java(并试图开始工作):
webView.getEngine().getLoadWorker().stateProperty().addListener(new ChangeListener<State>()
{
public void changed(ObservableValue<? extends State> o, State old, final State state)
{
if (state == State.SUCCEEDED)
{
JSObject win = (JSObject) webView.getEngine().executeScript("window");
win.setMember("app", new JavaApp());
//webView.getEngine().executeScript("javaObj.start()");
}
}
});
private class JavaApp {
public void test() {
Platform.exit();
}
}
我认为这样做:
function app.test() {\r\n" +
window.scrollBy(0, 20); \r\n" +
alert('done');\r\n" +
}
并通过以下方式调用它:
webView.getEngine().executeScript("test()");
即使这样也行不通...../
webView.getEngine().executeScript("alert('testing')");
【问题讨论】:
标签: java eclipse javafx webview