- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一整天都在搜索 SO 和各种网站,发现了很多可能正好适合我的问题的答案,但我在实现解决方案时遇到了麻烦。快速概述我要实现的目标:
我的问题是我不明白 window.getSelection() 对象如何在符合标准的浏览器中工作。我想要的是通过 JavaScript 将新粘贴的 textarea.value 复制到我的编辑器中,同时保留焦点和光标(插入符号)位置。因此,闪烁的光标应保留在粘贴的末尾。
我已经编写了以下代码来在 IE 中实现这个目标,但没有实现其他代码:
function handle_paste_keydown(key)
{
if(
(key.keyCode == 86 || key.charCode == 86) &&
(key.keyCode == 17 || key.charCode == 17 || key.ctrlKey) // if "Ctrl+V" is pressed.
)
{
var get_paste_selection_range;
if(document.selection)
{
get_paste_selection_range = document.selection.createRange();
document.getElementById("paste_textarea").style.display = "block";
document.getElementById("paste_textarea").focus();
document.getElementById("paste_textarea").onkeyup = function()
{
// insert the .value of the textarea at the cursor position in the editor.
get_paste_selection_range.text += document.getElementById("paste_textarea").value;
document.getElementById("paste_textarea").style.display = "none";
// retain focus and cursor position
get_paste_selection_range.select();
}
}
else if(window.getSelection())
{
document.getElementById("paste_textarea").style.display = "block";
document.getElementById("paste_textarea").focus();
document.getElementById("paste_textarea").onkeyup = function()
{
// How do I handle this?
document.getElementById("paste_textarea").style.display = "none";
}
}
}
document.getElementById("paste_textarea").value = "";
}
有人能帮忙吗?谢谢!
编辑:我已经添加了一个到实时版本的链接,这样你就可以看到发生了什么。请在 Internet Explorer 和其他浏览器中尝试此操作,以便您可以准确地看到发生了什么。注意:我已将隐藏的文本区域设置为在 Ctrl+V 上可见,以便您可以更好地了解正在发生的事情,按住 Ctrl+V 可使该框保持在屏幕上。
http://gameprogrammingworkshop.com/Java/Stack%20Overflow%20Error!/index.php?id=null
最佳答案
...
else if (window.getSelection) {
var selection = window.getSelection(),
get_paste_selection_range = selection.getRangeAt(0);
var new_text = selection.toString() + document.getElementById("paste_textarea").value;
// retain your focus
}
关于JavaScript window.getSelection() 搞不定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9751663/
您能回答一下这个问题吗? how do I get co-ordinates of selected text in an html using javascript document.getSele
var F1 = document.getElementById('samuText').value; function insertAtCursor() { if (window.getSelec
我尝试复制window.getSelection()至someObject将其存储为对象属性以供将来重用。 我有这个代码: var selection = window.getSelection();
这是我的代码: var sb = new qx.ui.form.SelectBox(); sb.add( new qx.ui.form.ListItem("English") ); sb.add( n
我正在使用新的 Firepad realtime text collaboration service . 我想对用户选择的框中的文本使用 JavaScript getSelection 方法。 但是
我正在尝试使用 document.getSelection 来选择我在所见即所得编辑器的文本区域中输入的文本。不过,它仅在您选择文本区域外的文本时才有效。不知道有没有办法让它在文本区域内选择文本? 下
我想在 iframe 设计模式中获取选定的内容。我正在使用以下代码。 function getIframeSelectionText(iframe) { var win = iframe.co
我需要建立一个评论机制,用户可以在其中突出显示一段文本,单击“对此发表评论”,然后执行某些操作。 Javascript 代码必须不仅要知道所选文本(这很简单),还要知道 anchorOffset,才能
我试图存储 window.getSelection() 的值,但如果用户选择另一个选择,这个值似乎会改变。 在我下面的代码中,我存储了初始用户的选择。然后我创建我的表单(这需要一些时间),当表单创建完
在firefox和chrome中window.getSelection用于获取document中的当前选择,但是如果当前选择在textarea中,window.getSelection返回的不是选择,
我有一个丰富的编辑器,我正在将其重写为 lit-element 自定义元素。我正在使用 Firefox(最新)进行测试。我正在尝试在自定义元素的 shadowDom 中选择内容可编辑元素(在方法中)。
在 Java 项目中,我使用 swt 小部件按钮作为复选框。 I have read the java docs我需要检查该框是否被选中的函数似乎是 Button.getSelection()。在我的
我正在尝试手动选择文本。 window.getSelection().getRangeAt(0); 行用于窗口选择的文本。但我希望这个由我预先选择。 foo=function() {
我正在使用带有 contenteditable 的 div 来制作文本编辑器。我觉得我在第一个障碍中失败了。 var bold = document.getElementById("bol
我一整天都在搜索 SO 和各种网站,发现了很多可能正好适合我的问题的答案,但我在实现解决方案时遇到了麻烦。快速概述我要实现的目标: 我构建了一个富文本编辑器。 我需要正确处理附加了格式的“粘贴”数据。
drawBarChart = function (data) { //few statements goes here which sets options which are being passe
我一直对为什么这种行为发生在 safari 上感到困惑。当我输入一些文本时,我试图获得选择,为此我使用了 window.getSelection() 并且它在 Firefox、Chrome、Opera
我在现有表格的mootools 1.3中制作了一个HtmlTable.Select,尝试了“selectable: true”和“enableSelect”,没有任何效果,如果我尝试访问表格的“get
下面是我的html代码: This is some short text. 当我使用鼠标并从“is”到“short”进行选择时,使用下面在网上找到的函数, function getSelectionC
在 JavaScript 中,我不知道如何通过单击使用 window.getSelection()? var s = window.getSelection(); s = s.toString().t
我是一名优秀的程序员,十分优秀!