找到用于插入图像的HTMLEditor光标指针

时间:2013-05-17 09:46:41

标签: html javafx html-editor

如主题所述:JavaFX HTMLEditor - Insert image function 如果要插入图像,请将以下标记添加到htmlEditor的htmlText

"<img src=\"" + getClass().getResource(PicName[i])) + "\" width=\"" + target.getImage().getWidth() + "\"height=\"" + target.getImage().getHeight()  + "\">")

但是如果想在光标位置添加图像怎么办?

3 个答案:

答案 0 :(得分:4)

您可以通过以下方式实现此目的

  1. 使用ScenicView探索HTMLEditor scenic view
  2. 在HTMLEditor中获取WebView
  3. 获取该WebView的WebEngine
  4. 运行JavaScript代码,使用WebEngine
  5. 将图像插入到插入符号位置

    如何使用JS替换HTML Link to Original Post

    function insertHtmlAtCursor(html) {
        var range, node;
        if (window.getSelection && window.getSelection().getRangeAt) {
            range = window.getSelection().getRangeAt(0);
            node = range.createContextualFragment(html);
            range.insertNode(node);
        } else if (document.selection && document.selection.createRange) {
            document.selection.createRange().pasteHTML(html);
        }
    }
    

    如何执行JS代码Guide

    Node webNode = htmlEditor.lookup(".web-view");
    if (webNode instanceof WebView) {
         WebView webView = (WebView) webNode;
         WebEngine engine = webView.getEngine();
         engine.executeScript("alert('helo')"); // add js code here
    }
    

答案 1 :(得分:0)

文本文件具有线性数据结构,并且在其视图中可以具有顺序位置和对应位置。 但对于html视图,屏幕上显示的对象位置到文本映射中的位置有点困难,这就是html编辑器无法确定光标位置的原因

我正在研究其他一些解决方法,以便在给定的光标位置插入图像。

尝试插入一个虚拟文本作为占位符,如### inserImage ####,然后将其替换为实际的图像标记&lt; img src =&#34; file:\ c:\ testhtmleditor \ sample01.jpg&# 34; /&GT; ..

答案 2 :(得分:0)

让我们尝试这段代码

@FXML private HTMLEditor editor; 
... 
public void insertTextToCurrentFeatureCursorPosition(String text) {
    WebView webView = (WebView) editor.lookup(".web-view");
    WebPage webPage = Accessor.getPageFor(webView.getEngine());
    webPage.executeCommand("insertHTML", text); 
}

其中text是包装图像的HTML代码