gpt4 book ai didi

javascript - Qt QML 如何格式化(突出显示)文本

转载 作者:太空狗 更新时间:2023-10-29 23:08:58 28 4
gpt4 key购买 nike

我想用 QML 编写一个简单的纯文本编辑器,包括简单的 Markdown 说明。因此,我添加了一个 TextEdit-Element 和一个用于语法高亮显示的 JavaScript 函数。

举个例子:

我想以粗体打印两个星号“*”之间的字符串。

所以我必须插入一个 <b>之前标记或 </b>标记在最新符号(*)之后,但该元素的属性是一个 HTML 文档。

如何找到正确的位置(我可以访问光标位置,但这与 html-doc 位置不同)?并插入这些标签?是否有一些辅助方法、作弊或指南?

最佳答案

您可以使用 window.getSelection() 获取选定的文本。

例如:

HTML:

<div id="test" onmouseover="getSelectedText()">a*b*</div>

JavaScript:

function getSelectedText() {
var m = 'getSelection';
if(m in window) {
var Selection = new String(window[m]());
var text = multiReplace([/\*([^*]+)\*/],
[RegExp.$1.bold()],
Selection
);

alert(text);
}
}


function multiReplace(arr1,arr2,str) {
if(arr1 instanceof Array) {
for(var i = 0,len = arr1.length; i < len; i++) {
str = str.replace(arr1[i],arr2[i]);
}
} else if(arr1 instanceof Object) {
str = arr2;
for(var key in arr1) {
str = str.replace(key, arr1[key]);
}
} else {
return null;
}
return str;
}

关于javascript - Qt QML 如何格式化(突出显示)文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7222323/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com