是否有任何事件在javascript中可用于来自不可编辑元素(如div或span)的精选文本。 我想从段落中选择文本,并从页面上的打开弹出颜色框突出显示文本。 我通过用户结束文本选择打开彩盒。那么如何在用户结束文本选择时捕获事件。 我尝试过鼠标事件,比如:
var slideElement = angular.element('.myElement', elem);
slideElement.bind('mouseup', (event) => {
// Funtionality goes here
)};
它适用于桌面,但在触摸设备上它将无法正常工作。因此,我可以以适当的方式处理选择结束事件,以便它适用于桌面和触摸设备。 当我们从触摸设备中选择文本时,触摸结束事件也将无效。 感谢
答案 0 :(得分:0)
用于从事件处理程序中的div
或span
中选择文本的最佳浏览器兼容代码如下:
function SelectText(element) {
var doc = document,
text = doc.getElementById(element),
range, selection;
if (doc.body.createTextRange) {
range = document.body.createTextRange();
range.moveToElementText(text);
range.select();
} else if (window.getSelection) {
selection = window.getSelection();
range = document.createRange();
range.selectNodeContents(text);
selection.removeAllRanges();
selection.addRange(range);
}
}
document.onclick = function(e) {
if (e.target.className === 'click') {
SelectText('selectme');
}
};

.click {
color: red;
cursor: pointer;
}

<div id="selectme">
<p>Some text goes here!</p>
<p>More text!</p>
</div>
<p class="click">Click me!</p>
&#13;
这也适用于移动设备。