1

如主题中所述:JavaFX HTMLEditor - 如果要插入图像,则插入图像功能应将以下标记添加到 htmlEditor 的 htmlText

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

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

4

3 回答 3

4

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

  1. 使用ScenicView探索 HTMLEditor 优美的风景
  2. 在 HTMLEditor 中获取 WebView
  3. 获取该 WebView 的 WebEngine
  4. 运行 JavaScript 代码以使用 WebEngine 将图像插入到插入符号位置

如何使用 JS 链接到原始帖子替换 HTML

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 代码指南

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
}
于 2014-07-04T05:48:18.767 回答
0

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

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

尝试插入一个虚拟文本作为 ###inserImage#### 之类的占位符,然后将其替换为实际图像标签 <img src="file:\c:\testhtmleditor\sample01.jpg" />..

于 2014-06-04T07:32:59.033 回答
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 代码

于 2015-12-07T23:31:01.963 回答