Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在contenteditable环境中获取正在单击的行?_Javascript_Html_Jquery_Css - Fatal编程技术网

Javascript 如何在contenteditable环境中获取正在单击的行?

Javascript 如何在contenteditable环境中获取正在单击的行?,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我是HTML/JS新手,我正在尝试将文本编辑器作为一个小项目。 如果我没有清楚地解释我的想法,请原谅 假设我在我的contenteditablediv环境中有以下文本,并让|表示光标(就像在大多数编辑器中看到的那样): 我怎样才能返回文本“这里还有一些文本” 我正在使用jQuery,我想我应该使用onClick处理程序,但这不响应用于导航的箭头键。我需要什么样的事件处理程序?到目前为止,我已经解析了文本以替换div分隔符,但是我对如何继续有点不知所措。 你建议做什么?(一般链接/建议也有效,我正

我是HTML/JS新手,我正在尝试将文本编辑器作为一个小项目。 如果我没有清楚地解释我的想法,请原谅

假设我在我的
contenteditable
div
环境中有以下文本,并让
|
表示光标(就像在大多数编辑器中看到的那样):

我怎样才能返回文本“这里还有一些文本”

我正在使用jQuery,我想我应该使用onClick处理程序,但这不响应用于导航的箭头键。我需要什么样的事件处理程序?到目前为止,我已经解析了文本以替换
div
分隔符,但是我对如何继续有点不知所措。 你建议做什么?(一般链接/建议也有效,我正试图通过本项目了解更多信息)

编辑,这是我的html:


以下是JS:

$(document).on('keydown','.editor',函数(e){
//检测“tab”键
如果(e.keyCode==9){
//添加选项卡
document.execCommand('insertHTML',false',和#009');
//防止关注下一个元素
e、 预防默认值()
}
var text=$(“#编辑器”).html();
console.log(“MYLITERAL:+text”);
//解析字符串:)
//对于div标记,将其替换为\n
var tmp=text.replace(//g,“”);
tmp=tmp.replace(//g,“”);
tmp=tmp.替换(/
/g,“\n”); 控制台日志(tmp); document.getElementById(“demo”).innerHTML=tmp; });

您可以尝试以下操作:

var strO、endO、lstEle;
功能选择范围(开始、结束、此){
var el=此值,sPos=开始,ePos=结束;
var charIndex=0,range=document.createRange();
范围。设置开始(el,0);
范围。塌陷(真);
var nodeStack=[el],node,foundStart=false,stop=false;
而(!stop&&(node=nodeStack.pop()){
if(node.nodeType==3){
var nextCharIndex=charIndex+node.length;

如果(!foundStart&&sPos>=charIndex&&sPos=charIndex&&ePos,你应该显示你的html.code。这里似乎有很多相关的问题,所以我建议尝试更努力地搜索:-)一些例子:,@Frenchy做到了!
hi this is some text
here is some mor|e text
hello, world!