我有这个 HTML 代码。
<div class="dontsplit" onmouseover="selCode('c111');">
Face savoring delicious food <span class="notranslate" id="c111">😊</span>
</div>
当鼠标悬停在 div 上时,我想选择 span 标签之间的值。我正在使用的代码是这样的。
function selCode(objId) {
if(document.selection) {
var range = document.body.createTextRange();
range.moveToElementText(document.getElementById(objId));
range.select();
} else if(window.getSelection) {
var range = document.createRange();
range.selectNode(document.getElementById(objId));
window.getSelection().addRange(range);
}
}
但是好像不行。我如何获得这项工作?
我再说一遍。当鼠标悬停在 div 上时,我需要自动选择 span 之间的文本。所以可以很容易地复制。提前致谢!
最佳答案
您的脚本适用于第一次鼠标悬停,但第二个向内的鼠标悬停会给出错误不支持不连续选择。
因此请在进行新选择之前清除现有选择。
function selCode(objId) {
if (document.selection) {
var range = document.body.createTextRange();
range.moveToElementText(document.getElementById(objId));
range.select();
} else if (window.getSelection) {
var range = document.createRange();
range.selectNode(document.getElementById(objId));
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
}
}
演示:Fiddle
关于JavaScript - 在鼠标悬停时选择范围文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28824227/