我一直试图调整一段代码,我发现在一个文本块中将1个字符向前删除到一个代码片段中,该代码片段删除文本块的所有文本(即通过结尾)。我可以将长度设为更大的数字(比如100)以捕获大多数实例,但这看起来并不干净。
var sel = getSelectedRange();
var start = sel[0];
var length = sel[1];
setTextInRange(start, length == 0 ? 1 : length, "");
setSelectedRange(start, 0);
例如,如果文本显示为“这是示例文本”并且光标位于单词“is”的前面,则结果将只是单词“This”
我在iOS上的草稿应用程序中使用此代码来处理文本 - 这是第一篇和第一篇文章的新内容,所以希望我包含所有信息......
编辑:详细说明正在使用的功能的Drafts app help page的位置。
答案 0 :(得分:0)
您是否可以添加功能代码getSelectedRange
,setTextInRange
& setSelectedRange
?这样可以让我更好地了解sel
是什么。
你是正确的,将长度设置为100不是那么干净。你想要做的是动态地获取文本其余部分的长度。删除那个。可能你只想传递sel.length
,但我不太确定sel
是一个数组。
答案 1 :(得分:0)
从未使用过,也不完全确定Drafts是什么,只是看看你可能只需要使用不同的函数定义。
test = "The lazy brown dog" \\ (imagine brown was selected)
sel = getSelectedRange() \\ returns [10, 5] if i counted right...
如果你想删除"棕色狗"你不能使用getSelectedRange
返回的长度,你需要先确定整个字符串的长度。
length = getText().length
length = length - sel[1] \\ find the length you want
setTextInRange(sel[0], length, "")
希望这会有所帮助
答案 2 :(得分:0)
我不确定我是否完全理解你,但我已经将快速原型放在一起。
$("#Javascript_example").click(function(){
var x = $("#Javascript_example").val();
var newStr = []
for(var i = 0; i< curPosition();i++){
newStr.push(x[i]);
}
console.log(newStr.join(''));
$("#Javascript_example").val(newStr.join(''));
});
function curPosition()
{
var ctl = document.getElementById('Javascript_example');
var curPos = ctl.selectionStart;
return curPos;
}