现在我正在使用document.onmouseup事件来选择文本。但我只能在我的代码中指定一个输入。如何选择第一行中的文本并将其放在第一行的输入中,并对第二行执行相同的操作?
代码段在这里(来自On Text Highlight Event?):
var t = '';
function gText(e) {
t = (document.all) ? document.selection.createRange().text : document.getSelection();
document.getElementById('input1').value = t;
}
document.onmouseup = gText;
if (!document.all) document.captureEvents(Event.MOUSEUP);
答案 0 :(得分:0)
我使用了here中的ShowSelection()
函数。
您可以将公共类添加到您想要此功能的inputs
。此外,您必须将mouseup
事件附加到所有输入。请参阅下面的解决方案。
var els = document.getElementsByClassName('selection');
function getSelection(textComponent) {
var selectedText;
if (textComponent.selectionStart !== undefined) { // Standards Compliant Version
var startPos = textComponent.selectionStart;
var endPos = textComponent.selectionEnd;
selectedText = textComponent.value.substring(startPos, endPos);
} else if (document.selection !== undefined) { // IE Version
textComponent.focus();
var sel = document.selection.createRange();
selectedText = sel.text;
}
return selectedText;
}
for (var i = 0; i < els.length; i++) {
els[i].addEventListener('mouseup', function() {
this.value = getSelection(this);
})
}
<table>
<tr>
<td>Test code 1</td>
<td>
<input type='text' id='input1' class="selection" />
</td>
</tr>
<tr>
<td>Test code 2</td>
<td>
<input type='text' id='input2' class="selection" />
</td>
</tr>
</table>