gpt4 book ai didi

javascript - 当在 SelectionStart 处突出显示等于零时,代码会中断

转载 作者:行者123 更新时间:2023-11-28 00:07:45 26 4
gpt4 key购买 nike

每当我突出显示selectionStart = 0;时,该代码不执行。但是,如果我突出显示文本区域中第一个字符前面的一个字符,则代码将起作用。如果我突出显示文本区域中的第一个字符,有什么想法可以使此代码正常工作吗?

        function fontBBCode(font){
var textbox = document.getElementById('content');
var textSelected;
var fontTagOpen = "[font=";
var fontTagClose = "[/font]";
var stringBuilder;
var sel;
var startSelPos;
var endSelPos;
var len;

if (document.selection){//IE
textbox.focus();
sel = document.selection.createRange();
textSelected = sel.text;
}
else if (textbox.selectionStart){//Mozilla
startSelPos = textbox.selectionStart;
endSelPos = textbox.selectionEnd;
textSelected = textbox.value.substring(startSelPos, endSelPos);
}

alert(textSelected.length);
alert(textbox.value.length);

if (textSelected){
stringBuilder = fontTagOpen.concat(font);
stringBuilder = stringBuilder.concat("]");
stringBuilder = stringBuilder.concat(textSelected);
stringBuilder = stringBuilder.concat(fontTagClose);
if(document.selection)//IE
sel.text = stringBuilder;
else if(textbox.selectionStart){//Mozilla
len = textbox.value.length;
textbox.value = textbox.value.substring(0,startSelPos) + stringBuilder + textbox.value.substring(endSelPos,len);
}
}
else{
stringBuilder = fontTagOpen.concat(font);
stringBuilder = stringBuilder.concat("]");
stringBuilder = stringBuilder.concat(fontTagClose);
textbox.value += stringBuilder;
}
}

最佳答案

这是因为第一个字符位于索引零,这使得当 document.selection/document.selectionStart 为 0 时 if 语句的计算结果为 false。

if (document.selection >= 0) { ... 

应该可以解决问题

关于javascript - 当在 SelectionStart 处突出显示等于零时,代码会中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31199140/

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