2016-08-18 15 views
1

JavaプロジェクトでKarsperskyウィジェットを使用したいが、javaでhtmlコードを実行しなかった。私はjsだけを実行しようとしていますが、エラーが発生します。javascriptで: "document"が定義されていないエラー

Caused by: <eval>:31ReferenceError: "document" is not defined

どうすればよいですか?

// 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]); 
} 

}()); 
+1

このJavaScriptコードは、Webページの一部として実行するように記述されています。 Webページのコンテキスト外で実行することはできません。なぜなら、 'document'とそれに接続されているもの(iframe、divなど)がないからです。 – Jesper

+0

この方法で操作する方法はありませんか?または、Javaでhtmlページを実行できますか? – rdmzcn

+0

このwidget.jsからどんな機能が必要ですか? – nolan

答えて

0

widget.js

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(); 
     } 
    } 
} 

私はこの問題に別の方法を解決しました。私はJxBrowserを使用しました。 JpanelのJFrameで使用できます。

+0

こんにちは、pls答えを投稿できますか?ソリューションコード – User

関連する問題