Внедрить HTML-код из веб-двигателя javafx

Попытка добавить к содержанию HTML-страницы после загрузки веб-движком javafx.

webEngine.load(getClass().getResource("teachsticks/classroomscreen.html").toExternalForm());
webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() {
    @Override
    public void changed(ObservableValue<? extends Worker.State> observable, 
                        Worker.State oldValue, Worker.State newValue) {

        if (newValue == Worker.State.SUCCEEDED) {
            JSObject win = (JSObject) webEngine.executeScript("window");
            win.setMember("app", new JavaApp());

            Document doc = webEngine.getDocument();
            JavaApp app = new JavaApp();

            // [...]

Сначала я попытался добавить этот метод, но не получилось:

Element elementNode = doc.createElement("div");
elementNode.setAttribute("id", "stat");
elementNode.appendChild(app.readHeading(app.buildContent(),doc));
Element el = doc.getElementById("content-1");
el.appendChild(elementNode);

Я также попробовал эту секунду ниже. Функция javascript включена в html-страницу, но при выполнении сценария она обнаруживает ошибку:

webEngine.executeScript("test('" + string + "');");

Exception in thread "JavaFX Application Thread" netscape.javascript.JSException: SyntaxError: Unexpected EOF
    at com.sun.webkit.dom.JSObject.fwkMakeException(JSObject.java:128)
    at com.sun.webkit.WebPage.twkExecuteScript(Native Method)
    at com.sun.webkit.WebPage.executeScript(WebPage.java:1427)
    at javafx.scene.web.WebEngine.executeScript(WebEngine.java:948)
    at teachsticks_1.WebClientHandler.executejQuery(WebClientHandler.java:78)
    at teachsticks_1.WebClientHandler.access$100(WebClientHandler.java:63)
    at teachsticks_1.WebClientHandler$1.changed(WebClientHandler.java:134)
    at teachsticks_1.WebClientHandler$1.changed(WebClientHandler.java:111)
    at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:182)
    at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
    at javafx.beans.property.ReadOnlyObjectWrapper$ReadOnlyPropertyImpl.fireValueChangedEvent(ReadOnlyObjectWrapper.java:176)
    at javafx.beans.property.ReadOnlyObjectWrapper.fireValueChangedEvent(ReadOnlyObjectWrapper.java:142)
    at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
    at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:146)

Метод 3 также столкнуться с той же ошибкой

String string = nodeToString(elementNode);
string = string.replace("xmlns=\"http://www.w3.org/1999/xhtml\"", "");
string = StringEscapeUtils.escapeHtml3(string);
System.out.println(string);
executejQuery(webEngine, "$('#j').append('"+string+"!');");

executejQuery() здесь

Строка, которая должна быть введена:

<DIV id="stat" xmlns="http://www.w3.org/1999/xhtml">
    <UL>
        <LI data-jstree="{&quot;icon&quot;:&quot;http://jstree.com/tree.png&quot;}">Statistics
            <UL>
                <LI data-jstree="{&quot;icon&quot;:&quot;glyphicon glyphicon-ok-sign&quot;}">Data Collection</LI>
                <LI data-jstree="{&quot;icon&quot;:&quot;glyphicon glyphicon-ok-sign&quot;}">Introduction to Statistics</LI>
            </UL>
        </LI>
    </UL>
</DIV>

Какими способами этого можно достичь.

0 ответов

Другие вопросы по тегам