gpt4 book ai didi

javascript - 检查光标是否在内容可编辑 div 的开头

转载 作者:行者123 更新时间:2023-11-29 16:03:32 25 4
gpt4 key购买 nike

我想查找光标是否位于内容可编辑 div 的开头。我正在使用 Internet Explorer 11。我有以下 html,并且我编写了一个 javascript 以在光标位于开头时返回 true。但是我的代码总是返回“false”。请帮助我当光标位于 div 的开头时如何返回 true,即在复选框之前。否则它应该返回 false(即使光标在复选框之后)。

<!DOCTYPE>
<HTML>
<HEAD>
<script language="JavaScript">
function getSelectionTextDetail(element) {
var atStart = false, atEnd = false;
var selectionRange, temporaryRange;
var selectedObject;
if (window.getSelection) {
selectedObject = window.getSelection();
if (selectedObject.rangeCount) {
selectionRange = selectedObject.getRangeAt(0);
temporaryRange = selectionRange.cloneRange();
temporaryRange.selectNodeContents(element);
temporaryRange.setEnd(selectionRange.startContainer, selectionRange.startOffset);
atStart = (temporaryRange.toString() === "");
}
}
alert(atStart);
//return atStart;
}
</script>
</HEAD>

<BODY>
<div style="border:solid 1px" contenteditable="true" onKeyUp="getSelectionTextDetail(this)">
<span style="font-family: Arial; font-size: 8pt;">
<input name="chk_O258" id="chk_O258" style="width: 12px; height: 12px; padding-top: 0px; padding-bottom: 0px; vertical-align: middle;" type="checkbox" value="on">Cursor Position Test</span></div>
</BODY>
</HTML>

最佳答案

没有在 IE 中测试过,但是试试这个:

<!DOCTYPE>
<HTML>
<HEAD>
<script language="JavaScript">
function getSelectionTextDetail(element) {
var atStart = false, atEnd = false;
var selectionRange, temporaryRange;
var selectedObject;
if (window.getSelection) {
selectedObject = window.getSelection();

if (selectedObject.rangeCount) {
selectionRange = selectedObject.getRangeAt(0);
temporaryRange = selectionRange.cloneRange();
temporaryRange.selectNodeContents(element);
temporaryRange.setEnd(selectionRange.startContainer, selectionRange.startOffset);
check_string = temporaryRange.toString();
atStart = (check_string.replace(/^\s+|\s+$/g, '') === "" && selectionRange.startOffset == 1);
}
}
alert(atStart);
//return atStart;
}
</script>
</HEAD>

<BODY>
<div style="border:solid 1px" contenteditable="true" onKeyUp="getSelectionTextDetail(this)">
<span style="font-family: Arial; font-size: 8pt;">
<input name="chk_O258" id="chk_O258" style="width: 12px; height: 12px; padding-top: 0px; padding-bottom: 0px; vertical-align: middle;" type="checkbox" value="on">Cursor Position Test</span></div>
</BODY>
</HTML>

关于javascript - 检查光标是否在内容可编辑 div 的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36765485/

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