Как загрузить TinyMCE Editor через WebView в jar? - PullRequest
2 голосов
/ 07 марта 2012

В моем проекте JavaFX я пытаюсь интегрировать редактор TinyMCE в качестве текстового редактора HTML через WebView.Вот демонстрационное приложение:

package tinydemo;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class TinyDemo extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Demo");
        WebView webView = new WebView();
        webView.getEngine().load(TinyDemo.class.getResource("simple.html").toExternalForm());
        StackPane root = new StackPane();
        root.getChildren().add(webView);
        primaryStage.setScene(new Scene(root, 500, 400));
        primaryStage.show();
    }
}

Я использую IDE Netbeans, вид пакета:

package

Содержимое simple.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Simple theme example</title>
        <script type='text/javascript' src='jquery-1.5.2.min.js'></script>
        <script type="text/javascript" src="tiny_mce/tiny_mce.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                var wewe = document.getElementById('wewe');
                wewe.innerHTML += '<br/>protocol: '+ document.location.protocol;
                tinyMCE.init({
                    mode : "textareas",
                    theme : "simple"
                });
            });
        </script>
    </head>
    <body>

        <div id="wewe"></div>
        <h3>Simple theme example</h3>
        <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%">
                This is some example text that you can edit inside the &lt;strong&gt;TinyMCE editor&lt;/strong&gt;.
        </textarea>
        <script type="text/javascript">
            if (document.location.protocol == 'file:') {
                alert("The examples might not work properly on the local file system due to security settings in your browser. Please use a real webserver.");
            }
        </script>
    </body>
</html>

Теперь, когда я запускаю приложение из Netbeans, редактор TinyMCE успешно загружается с обнаруженным файловым протоколом.

build

Однако при запуске сгенерированного TinyDemo.jar из командной строки под папкой dist , я получаю это:

jar

Где не удается загрузить редактор TinyMCE,Я думаю, что проблема заключается в абсолютных / относительных путях ссылок TinyMCE в jar, но не может ее решить.Любая помощь приветствуется.Спасибо.

1 Ответ

3 голосов
/ 08 марта 2012

Согласно этой ветке обсуждения на форуме относительная загрузка ресурсов в настоящее время корректно работает только в предварительном просмотре для JavaFX для разработчиков, а не в версии 2.0GA.

Если после обновления до версии JavaFX для предварительного просмотра 2.1 загрузка ресурсов из JAR-файла по-прежнему не работает, вы можете развернуть TinyMCE на пути к классам, но вне упакованного JAR-файла, чтобы он загружался с использованием (например) файл или протокол http, а не протокол jar. Или вы можете разработать собственный обработчик протокола, который загружает ресурсы из jar, как обсуждалось в ссылочном потоке.

...