Example usage for javafx.scene.web WebEngine executeScript

List of usage examples for javafx.scene.web WebEngine executeScript

Introduction

In this page you can find the example usage for javafx.scene.web WebEngine executeScript.

Prototype

public Object executeScript(String script) 

Source Link

Document

Executes a script in the context of the current page.

Usage

From source file:clientechat.TestList.java

private static Object executejQuery(final WebEngine engine, String script) {
    return engine.executeScript("(function(window, document, version, callback) { " + "var j, d;"
            + "var loaded = false;"
            + "if (!(j = window.jQuery) || version > j.fn.jquery || callback(j, loaded)) {"
            + " var script = document.createElement(\"script\");" + " script.type = \"text/javascript\";"
            + " script.src = \"http://code.jquery.com/jquery-1.7.2.min.js\";"
            + " script.onload = script.onreadystatechange = function() {"
            + " if (!loaded && (!(d = this.readyState) || d == \"loaded\" || d == \"complete\")) {"
            + " callback((j = window.jQuery).noConflict(1), loaded = true);" + " j(script).remove();" + " }"
            + " };" + " document.documentElement.childNodes[0].appendChild(script) " + "} "
            + "})(window, document, \"1.7.2\", function($, jquery_loaded) {" + script + "});");
}

From source file:mercury.core.JSONUtils.java

/**
 *
 * @param engine WebEngine used for parsing
 * @param json json string//from   ww w.j a va  2s.co m
 * @return JSObject returns a JS Object, useful for Async function
 */
public static JSObject parseToJSON(WebEngine engine, String json) {

    JSObject document = (JSObject) engine.executeScript("window");
    JSObject jsonObject = (JSObject) document.getMember("JSON");
    return (JSObject) jsonObject.call("parse", json);
}

From source file:Main.java

@Override
public void start(Stage primaryStage) {
    WebEngine webEngine = new WebEngine();
    webEngine.getLoadWorker().stateProperty().addListener((obs, oldValue, newValue) -> {
        if (newValue == Worker.State.SUCCEEDED) {

            JSObject jsobj = (JSObject) webEngine.executeScript("window");
            jsobj.setMember("ABCD", new HelloWorld());
        }/*from w  w  w .j  a  v  a 2s.co m*/
    });

    webEngine.load("http://www.java2s.com");

    Group root = new Group();
    Scene scene = new Scene(root, 300, 250);

    primaryStage.setScene(scene);
    primaryStage.show();
}

From source file:de.micromata.mgc.javafx.logging.LoggingController.java

public void refreshLogConfiguration() {
    loggingAdapter.refreshLogConfiguration();
    Platform.runLater(() -> {/* w ww. jav  a2 s.c o  m*/
        WebEngine engine = htmlView.getEngine();
        engine.executeScript("logViewer.refreshForm();");
    });

}

From source file:Main.java

@Override
public void start(Stage primaryStage) {
    WebEngine webEngine = new WebEngine();
    webEngine.getLoadWorker().stateProperty().addListener((obs, oldValue, newValue) -> {
        System.out.println(newValue);
        if (newValue == State.SUCCEEDED) {
            System.out.println("finished loading");
            String html = (String) webEngine.executeScript("document.documentElement.outerHTML");
            System.out.println(html);

        }/*from w  w  w.java  2s.co  m*/
    });

    webEngine.load("http://www.java2s.com");

    Group root = new Group();
    Scene scene = new Scene(root, 300, 250);

    primaryStage.setScene(scene);
    primaryStage.show();
}

From source file:de.micromata.mgc.javafx.logging.LoggingController.java

@Override
public void initialize(URL location, ResourceBundle resources) {

    WebEngine engine = htmlView.getEngine();
    engine.getLoadWorker().stateProperty().addListener((ov, oldState, newState) -> {
        if (newState == javafx.concurrent.Worker.State.SUCCEEDED) {
            Document doc = engine.getDocument();
            //        if (guiWriteBuffer.isEmpty() == false) {
            //          List<LogWriteEntry> copy = new ArrayList<>(guiWriteBuffer);
            //          guiWriteBuffer.clear();
            //          addToGuiInGui(copy);
            //        }
        }/*w  ww . jav a 2  s  .c  o  m*/
    });
    engine.setJavaScriptEnabled(true);

    StringBuilder html = new StringBuilder();

    String init = "  var logCounter = 0; \r\n" + "var loggingAdapter;\n"
            + "function ALogCallback(callback) { \n" + " this.callback = callback;\n"
            + " this.doCallback = function(entries) {this.callback(entries); }\n" + "};"
            + "function LogConsoleBackend(logViewer) {\r\n" + "  this.supportsPoll = false;\r\n"
            + "  this.supportsSearch = false;\r\n" + "  this.init = function(logViewer) {\r\n"
            + "  this.logViewer = logViewer;\n" + "   loggingAdapter.init(this);\n" + "  }\r\n"
            + "  this.logPoll = function(lastTime, callback) {\r\n"
            + "    loggingAdapter.logPoll(lastTime, new ALogCallback(callback));\r\n" + "  }\r\n"
            + "  this.getLoggingConfiguration = function() {\n"
            + "    return loggingAdapter.getLoggingConfiguration();\n" + "  };"
            + "  this.logSelect = function(logFormData, callback) {\r\n"
            + "    //console.debug('LogConsoleBackend.logSelect');\n"
            + "    loggingAdapter.logSelect(logFormData, new ALogCallback(callback));\n" + "  };\n"
            + "  this.logSelectAttributes = function(logId, callback) {\n"
            + "    loggingAdapter.logSelectAttributes(logId, new ALogCallback(callback));\n" + "  }\n" + "}"
            + "  function logProvider() {\r\n" + "    var item = {\r\n"
            + "      logTime : '2006-01-01 12:12',\r\n" + "      logLevel : 'Note',\r\n"
            + "      logMessage : 'Hello ' + ++logCounter,\r\n" + "      logAttributes : [ {\r\n"
            + "        typeName : \"AKey\",\r\n" + "        value : 'A value'\r\n" + "      }, {\r\n"
            + "        typeName : \"BKey\",\r\n" + "        value : 'B value'\r\n" + "      } ]\r\n"
            + "    };\r\n" + "    return [ item ];\r\n" + "  }\r\n" +

            "var logViewer = new GLogViewer({\r\n" + "    logListId : 'glogentries',\r\n"
            + "    formId : 'glogform',\r\n" + "    maxItems: 100,\r\n" + "    logPollTimeout: 1000,\r\n"
            + "    enableEmbeddedDebugger: false\n" + "\r\n" + "  });\n" + "window.logViewer = logViewer;\n";

    html.append("<html><head>").append(getHtmlHeader())

            .append("\n<script  type=\"text/javascript\">\n").append(init).append("\n</script>\n")
            .append("</head>").append("<body>\r\n");
    html.append(LogHtmlWindowServlet.getGLogHtmlForm());
    html.append("</body>");

    engine.loadContent(html.toString());
    engine.getLoadWorker().stateProperty().addListener((observable, oldValue, newValue) -> {
        try {

            JSObject window = (JSObject) engine.executeScript("window");
            window.setMember("loggingAdapter", loggingAdapter);

            engine.executeScript("console.debug = function(message){ loggingAdapter.jsdebug(message); };\n"
                    + "console.warn = function(message){ loggingAdapter.jswarn(message); };\n"
                    + "console.error = function(message){ loggingAdapter.jserror(message); }; console.debug('console redirect initialized');\n");
            //        JSObject logViewer = (JSObject) engine.executeScript("logViewer");
            //        logViewer.call("setBackend", loggingAdapter);
            engine.executeScript("logViewer.setBackend(new LogConsoleBackend());");
        } catch (RuntimeException ex) {
            ex.printStackTrace();
        }

    });
    INSTANCE = this;
    LoggingEventListenerRegistryService listenerRegisterService = LoggingServiceManager.get()
            .getLoggingEventListenerRegistryService();

    listenerRegisterService.registerListener(FxLogconsoleLogWriteEntryEventListener.class);
    listenerRegisterService.registerListener(FxLogconsoleLogRegisteredCategoryChangedEventListener.class);
    listenerRegisterService.registerListener(FxLogconsoleLogRegisteredLogAttributesChangedEventListener.class);
}