Dans mon projet JavaFX, j'essaie d'intégrer l'éditeur TinyMCE en tant qu'éditeur de texte riche HTML via WebView
. Voici une application de démonstration:Comment charger TinyMCE Editor via WebView dans un pot?
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();
}
}
J'utilise NetBeans IDE, le point de vue du package est:
Le contenu de 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 <strong>TinyMCE editor</strong>.
</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>
Maintenant, quand je lance l'application de Netbeans, l'éditeur TinyMCE se charge successivement avec le protocole de fichier détecté.
Cependant, quand je lance le produit TinyDemo.jar de la ligne de commande dans le dossier dist, je reçois ceci:
Où éditeur TinyMCE a échoué charger. Je pense que le problème est des références de chemin absolu/relatif de TinyMCE dans le jar, mais n'a pas pu le résoudre. Toute aide est appréciée. Merci.
Tout d'abord, merci ** jewelsea ** pour des suggestions. J'ai essayé avec la version 2.1 aperçu de dev sans la chance. Puisque ne pouvait pas déterminer exactement où est un problème, ne peut pas imaginer quoi écrire dans un gestionnaire de protocole personnalisé. Cependant, j'ai résolu mon problème en remplaçant le TinyMCE par un éditeur HTML plus léger. –
Génial, vous avez réussi à faire fonctionner Uluk. Si vous avez besoin d'un autre exemple pour intégrer un éditeur, vous pouvez voir [embeding code mirror in JavaFX] (http://jewelsea.wordpress.com/2011/12/11/codemirror-based-code-editor-for-javafx/), bien que ce soit pour un éditeur de code mettant en évidence la syntaxe et pas un éditeur html directement. JavaFX possède également un [éditeur HTML] intégré (http://docs.oracle.com/javafx/2.0/api/javafx/scene/web/HTMLEditor.html) qui, je présume, ne correspondait pas à vos besoins. – jewelsea
Basé sur mes tests avec JavaFX version 2.2, j'étais également incapable de l'obtenir pour charger tinyMCE dans un fichier jar. Je soupçonne qu'il peut y avoir quelque chose dans tinyMCE qui l'empêche de fonctionner. Ma "solution" était de ne pas mettre le code tinyMCE dans un pot. – Avrom