- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面是我的html代码:
<div id="text">This is <span class="ignore">some</span> short text.</div>
当我使用鼠标并从“is”到“short”进行选择时,使用下面在网上找到的函数,
function getSelectionCharOffsetsWithin(element) {
var start = 0, end = 0;
var sel, range, priorRange;
if (typeof window.getSelection != "undefined") {
range = window.getSelection().getRangeAt(0);
priorRange = range.cloneRange();
priorRange.selectNodeContents(element);
priorRange.setEnd(range.startContainer, range.startOffset);
start = priorRange.toString().length;
end = start + range.toString().length;
} else if (typeof document.selection != "undefined" &&
(sel = document.selection).type != "Control") {
range = sel.createRange();
priorRange = document.body.createTextRange();
priorRange.moveToElementText(element);
priorRange.setEndPoint("EndToStart", range);
start = priorRange.text.length;
end = start + range.text.length;
}
return {
start: start,
end: end
};
}
我将得到开始范围 = 5,结束范围 = 20。但我希望范围计算忽略 <span class="ignore">
这样我只得到开始范围 = 5 和结束范围 = 14。
在处理之前,我将文本复制到另一个虚拟 div,但似乎 window.getSelection() 只能获取原始文本,有专家知道如何忽略 <span class="ignore">
中的文本吗?这样我就能得到准确的范围?
最佳答案
<div class="content">
Vivamus <span>luctus</span> urna sed urna ultricies ac tempor dui sagittis.
</div>
$(".content").on("mouseup", function () {
var start = window.getSelection().baseOffset;
var end = window.getSelection().focusOffset;
if (start < end) {
var start = window.getSelection().baseOffset;
var end = window.getSelection().focusOffset;
} else {
var start = window.getSelection().focusOffset;
var end = window.getSelection().baseOffset;
}
alert(window.getSelection());
alert(start + ", " + end);
});
关于javascript - window.getSelection() 忽略某些标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26136326/
您能回答一下这个问题吗? 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
我是一名优秀的程序员,十分优秀!