Java 프로젝트에서 Karspersky 위젯을 사용하고 싶지만 java에서 html 코드를 실행하지 않았습니다. js 만 실행하려고하는데 오류가 발생합니다.javascript : "document"가 정의되지 않았습니다.
Caused by:
<eval>:31
ReferenceError: "document" is not defined
어떻게해야합니까?
public class MainClass {
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
try {
FileReader reader = new FileReader("/home/havelsan/Desktop/widget.js");
engine.eval(reader);
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
내가 다른 방법으로 문제를 해결
// Cybermap v2 widget loader
(function() {
function setup_widget(div) {
var config = {
width: div.dataset.width || 640,
height: div.dataset.height || 640,
language: div.dataset.language || 'en',
theme: div.dataset.theme || 'dark',
type: div.dataset.type || 'dynamic'
};
console.log("config.language >> " + config.language);
var iframe = document.createElement('iframe');
var baseURI = 'https://cybermap.kaspersky.com/';
iframe.src = baseURI + (config.type == 'dynamic' ? 'widget.html' : 'widget-static.html');
iframe.style.width = config.width + 'px';
iframe.style.height = config.height + 'px';
iframe.style.border = 'none';
iframe.onload = function() {
console.log("config.language >> " + config.language);
var msg = JSON.stringify({ config: config });
iframe.contentWindow.postMessage(msg, '*');
};
console.log("config.language >> " + config.language);
div.appendChild(iframe);
}
var divs = document.querySelectorAll('.kas-cybermap-widget');
for (var i = 0; i < divs.length; ++i) {
setup_widget(divs[i]);
}
}());
JavaScript 코드는 웹 페이지의 일부로 실행되도록 작성되었습니다. 웹 페이지의 컨텍스트 외부에서 실행할 수는 없습니다. 왜냐하면 '문서'와 이에 연결된 모든 항목 (예 : iframe, div 등)이 없기 때문입니다. – Jesper
이런 방식으로 작동 할 방법이 없습니까? 또는 자바에서 html 페이지를 실행할 수 있습니까? – rdmzcn
이 위젯에서 어떤 기능이 필요합니까? – nolan