Javascript 如何在元素ui输入中访问用户选择的文本?

Javascript 如何在元素ui输入中访问用户选择的文本?,javascript,input,textselection,element-ui,Javascript,Input,Textselection,Element Ui,我想通过Electron中的Javascript访问组件中的文本。据介绍,无法通过window.getSelection访问html输入或文本字段中的信息 我尝试使用建议的selectionStart访问所选内容失败 const input = document.getElementById("input") alert(input.selectionStart.toString) 考虑到这不起作用,我必须做什么才能在我的?中获取所选内容中的文本?基于以下答案:您可以使用获取所需的所有元素。您

我想通过Electron中的Javascript访问组件中的文本。据介绍,无法通过window.getSelection访问html输入或文本字段中的信息

我尝试使用建议的selectionStart访问所选内容失败

const input = document.getElementById("input")
alert(input.selectionStart.toString)
考虑到这不起作用,我必须做什么才能在我的?

中获取所选内容中的文本?基于以下答案:您可以使用获取所需的所有元素。您可以使用类名、ID或标记名等。然后使用迭代并添加所需的。在forEach循环中,可以对任何给定元素执行任何操作

更新 不幸的是,第一个解决方案在Firefox中不起作用。请进一步查看此解决方案应适用于更多浏览器

var mySpecialSelect=functionelement{ 元素。addEventListener'mouseup',函数{ 让startPos=element.selectionStart; 让endPos=element.selectionEnd; 让字段_值=element.value; 让selectedText=字段\ U值。子字符串StartPos,endPos; 如果选择了text.length查看我从您提供的ELInput链接制作的这段短视频,一般说明如下:

看不到html有点困难,但我猜您甚至没有id为“input”的输入,这正是javascript代码所查询的:

常量输入=document.getElementByIdinput

查看您提供的ElInput链接上的html,这些输入有一个el-input\uu inner类,您可以使用

常量输入=document.getElementsByClassel-input\uu内部

但这将返回一个元素数组,您需要确保您正在选择所需的元素。如果您实际向输入元素添加了一个Id标记,则可以通过Id进行选择。这也是您在视频中看到[1]的原因,它正在选择数组中该位置的元素

从那里,您可以在input元素中选择文本,并从javascript中获得选择范围:input.selectionStart和input.selectionEnd

现在,您可以使用input.value.substrinput.selectionStart、input.selectionEnd获取子字符串,然后从中对文本执行所需的任何操作。

您可以使用中所述的本机事件处理程序,然后底层HTML元素的selectionStart/End将起作用:

var Main={ 资料{ 返回{ 输入:“选择某物。” } }, 方法:{ dothingevent{ 设elem=event.target; console.logelem.value.substringelem.selectionStart、elem.selectionEnd; } } } 变量向量=Vue.extendMain 新Ctor.$mount'app'
请看下面的答案:这似乎适用于文本框和输入字段,这就是您要寻找的吗?@caramba:该示例使用document.getElementById获取html元素。我不清楚如何在这种上下文中替换它。什么是选举?我不确定这有什么帮助。如果运行代码snippet,它会记录emp每当选择文本时,输入ty字符串。我不关心选择事件,但关心选择内容。@Christian您在哪个浏览器中?在google chrome中,如果我选择文本,它将记录选择并在所选框上添加/切换橙色边框。这对您有效吗?我已根据所看到的.I ag用.gif更新了答案ree,如果选择长度为0,则应该执行返回,并且在10秒内完成,但我没有将其视为question@Christian请看一下更新后的答案。现在它在Firefox中也可以使用。如果某些东西不起作用,请添加更多详细信息,例如您正在使用的浏览器。我们在这里试图帮助您,请帮助我们帮你。