问题标签 [getselection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
11756 浏览

javascript - Handsontable - getSelected 不起作用

我正在使用 handsontable 创建一些类似 excel 的电子表格,我需要检索用户选择的数据以使用 gRaphael 创建图表。但是,当我尝试使用此代码甚至警告数据选择参数时:

我在警报窗口中写了“未定义”。有人可以告诉我如何修复此代码吗?

0 投票
2 回答
696 浏览

html - 选择除一列之外的所有 HTML 表格

我正在使用以下内容在我的应用程序中选择一个表格元素,以便用户将表格拖放到 Excel 中:

...一切正常。除了我的一个表在一列中有图像,我想从选择中删除这一列(或该列中的 td)。

我将“图片”td 添加到“nosel”类中,并且能够将表中不在该类中的所有 td 放入变量中:

然后我省略了删除或清空当前选择的代码,并尝试将每个单元格添加到选择中:

...但只有第一个 td 被选中。

所以两个问题:

  1. 这甚至可能吗?

  2. 有没有比 addRange 更好的方法?我尝试了扩展,但没有奏效。

根据要求,这是我的表的示例:

0 投票
1 回答
119 浏览

javascript - 如何在Javascript中计算dblclick事件的文本偏移量

我有一个标签,正在ondblclick上面设置:

双击文本中的单词时,我得到了 Javascript 函数的回调。

我想知道选择的文本中有多少个字符。

我可以使用以下方法获得选择本身:

当然我有文本节点本身,所以我有整个文本。

但是选择可以在文本节点中出现多次——我需要从字符的角度知道偏移量。例如,如果用户双击 blah,我想知道它是哪一个。

我在事件中所能找到的只是各种 X、Y 坐标,它们对我来说看起来像像素——但我有两个滚动条、格式等,因此计算像素的字符偏移量将非常非常困难。

这些信息是在事件数据中的某处,还是有用于以某种方式计算的代码?

非常感谢任何帮助。

0 投票
1 回答
250 浏览

javascript - getSelection removes links from selection?

I'm using following code to add my copyright when a text get selected in my website. Everything works well, except that if user selects an area which has link, getSelection() method does not return the link. It just returns the plain text. I want to allow user to copy my website content as usual, without disturbing the style and content. I'm just looking for a way to add a copyright to the end of selection. Any way?

Regards

0 投票
2 回答
1500 浏览

javascript - JavaScript 如何从选定的文本中提取链接

我正在寻找解决方案如何使用window.getSelection 和从选定的文本中提取 url document.selection

要选择的文本看起来:

选定文本(由用户选择)以提取链接:

选项 1(包括标签之间的文本和文本):

选项 2(选择文本和链接片段):

该函数应该返回http://example.com

0 投票
1 回答
802 浏览

algorithm - 折叠 3D 立方体上的选定点

我正在尝试为以下 3D 立方体选择问题找到一种有效的算法:

想象一个 2D 点数组(让它大小为 x 大小的正方形)并将其称为边。

为了便于计算,让我们将 max 声明为 size-1 创建一个有六个边的立方体,在左下角保持 0,0,在右上角保持 max,max。使用 z 跟踪单个立方体所在的边,y 为上,x 为右

现在要选择一个随机单点,我们可以使用三个随机数,这样:

要选择一个加号,我们可以检测给定方向是否适合当前边。否则,我们会发现立方体位于接触中心点的一侧。

使用 4 个函数,例如:

现在我想找到一种在随机点选择任意形状(如预定义的随机 blob)的方法。但会满足于将其调整为方形或锯齿形圆形。

实际的表面积会在拐角处弯曲并折叠到自身上,这很好,不需要补偿(想象一下在立方体的拐角上贴一个贴纸,如果拐角与贴纸的中心匹配,则需要四分之一的贴纸将其移除以使其粘在角落上并折叠)。这又是想要的效果。

不允许重复选择,因此需要以某种方式过滤将被选择两次的多维数据集(或以不发生重复的方式计算)。这可能很简单,例如使用 HashSet 或 List 并使用辅助函数来检查条目是否唯一(这很好,因为选择总是远低于最大 1000 个立方体)。

包含立方体边的类中此函数的委托如下所示: delegate T[] SelectShape(Point3D point, int size);

目前我正在考虑检查多维数据集的每一侧,以查看选择的哪一部分位于该侧。

计算选择的哪一部分位于所选 Point3D 的同一侧,因为我们不需要平移位置,只需平移边界即可。接下来是 5 次翻译,然后检查其他 5 面以查看所选区域的一部分是否在该面。

我在解决这样的问题方面变得生疏了,所以想知道是否有人有更好的解决方案来解决这个问题。

@arghbleargh 要求进一步解释:

我们将使用一个 6 面的立方体,大小为 16。每面是 16x16 点。存储为一个三维数组,我将 z 用于边、y、x,这样数组将使用:new Point3D[z,y,x] 启动,它对于锯齿状数组的工作方式几乎相同,默认情况下可序列化(所以那也很好)[z][y][x] 但需要单独初始化每个子数组。

让我们选择一个大小为 5x5 的正方形,以选定点为中心。要找到这样一个 5x5 的正方形减法并将 2 添加到相关轴:x-2 到 x+2 和 y-2 到 y+2。

随机选择一个边,我们选择的点是z = 0(立方体的x+边),y = 6,x = 6。

6-2 和 6+2 都很好地在边的 16 x 16 阵列的范围内,并且易于选择。

然而,将选择点移动到 x=0 和 y=6 将证明更具挑战性。因为 x - 2 需要查看我们选择的一侧的左侧。幸运的是,我们选择了边 0 或 x+,因为只要我们不在立方体的顶部或底部并且不进入立方体的顶部或底部,所有轴都是 x+ = 右,y+ = 上。因此,要获得左侧的坐标只需要减去 max (size - 1) - x。请记住 size = 16, max = 15, x = 0-2 = -2, max - x = 13。因此,这一边的小节将是 x = 13 到 15,y = 4 到 8。将其添加到我们的部分可以在原始一侧选择将给出整个选择。

将选择移至 0,6 会更复杂,因为现在我们无法隐藏在知道所有轴对齐的安全性之后。可能需要进行一些轮换。只有 4 种可能的翻译,所以它仍然是可管理的。

转移到 0,0 是问题真正开始出现的地方。现在左右两边都需要绕到另一边。此外,即使细分的部分也会有一个区域落在外面。唯一能治愈这个伤口的是我们不关心选择的重叠部分。因此,我们可以在可能的情况下跳过它们,也可以稍后从结果中过滤它们。

现在我们从“法线轴”一侧移动到底部,我们需要旋转并匹配正确的坐标,以便点正确地环绕边缘。

由于每边的轴都折叠在一个立方体中,因此某些轴可能需要翻转或旋转才能选择正确的点。

如果有更好的解决方案可以选择区域内立方体上的所有点,问题仍然存在。也许我可以给每一边一个平移矩阵并在世界空间中测试坐标?

0 投票
1 回答
1075 浏览

javascript - IE 8 getSelection().anchorOffset 替代

我有一个 Javascript 代码,它适用于现代浏览器:

如何在没有 window.getSelection() 方法的 IE 8 上获得相同的结果?

0 投票
1 回答
6575 浏览

javascript - getSelection 在 Chrome 中无法正常工作

在下面的代码中selectTextOnly(),通过单击任何单元格或顶部的 div 来调用代码onclick

在 Chrome 中,如果我单击任何表格单元格,一切都会正常工作。但是,当我单击 div 时,会调用该函数但未设置任何选择。

单击 div 和单元格在 Firefox 中按预期工作。

为什么单击 div 不会选择 Chrome 中的单元格?

jsFiddle上的示例

html:


javascript:


0 投票
1 回答
661 浏览

javascript - 在 insertElement 之后在 ckeditor 中创建Bookmarks2

我的源代码:

如果我使用first bookmark光标跳转到 newElement 之前的位置,但我想拥有 newElement 之后的位置。但是如果我使用second bookmark我会得到这个错误: Uncaught TypeError: Cannot read property 'type' of null在一些 ckeditor.js 文件中

知道如何在 newElement 之后获取光标位置吗?

0 投票
2 回答
1865 浏览

combobox - 获取选择组合框

我不知道在我键入时组合框还需要从我的列表中选择什么。最终我将添加 SetInsertionPoint。但是现在,我选择的项目总是-1