【发布时间】:2014-08-14 19:27:59
【问题描述】:
从我的 Java FX 应用程序中,我应该加载一个简单的 HTML 页面,其中包含一个显示外部网站的 iframe。我知道我可以使用webEngine.load() 来加载网站,但作为一项要求,我必须以这种方式实现它(我正在尝试将 Duo Security Web SDK 合并到我们的 Java 应用程序中)。
在 Windows 上,一切正常。但是,某些网站无法在 Linux(Debian、Fedora)上加载。我可以显示像 gmail (https)、espn.com 或 en.wikipedia.org 这样的网站。但是谷歌和雅虎不会加载。我认为这不是 https 或 flash 问题。请看下面的代码。
Java:
webEngine.getLoadWorker().stateProperty().addListener(
new javafx.beans.value.ChangeListener<State>() {
@Override
public void changed(ObservableValue ov, State oldState, State newState) {
if (newState == State.SUCCEEDED) {
webEngine.executeScript(
"window.duoHost = '"+duoHost+"';"
+ "window.duoSigRequest = '"+duoSigRequest+"';"
+ "loadDuoOptions();");
JSObject jsobj = (JSObject) webEngine.executeScript("window");
jsobj.setMember("java", new Bridge());
System.out.println("Set up done");
}
}
});
HTML:
<head>
<title>Designer Login with Duo </title>
<script src="Duo-Web-v1.bundled.js"></script>
<script>
function loadDuoOptions(){
Duo.init({
'host' : window.duoHost,
'sig_request' : window.duoSigRequest
});
Duo.ready();
}
window.processDuoResponse = function(data){
duoResponse = data;
loginHandler.verifyDuoResponse(duoResponse);
}
</script>
</head>
<body>
<iframe id="duo_iframe" width="500" height="500" frameborder="0"></iframe>
</html>
【问题讨论】:
标签: java linux iframe webview javafx