我想限制用户在同一段落内进行文本选择。
var selection = getSelection();
var range = selection.getRangeAt(0);
我想验证范围对象,以便如果范围“存在”在同一段落下,并且不以可能的同级段落结束,则该对象变得有效.
怎么做?
参见Range对象引用。
最佳答案
您可以使用Selection.toString()并检查选择内容是否有换行符。
var range = window.getSelection().toString();
if(!/\n/.test(range)){
...
编辑
换行符可能是由于 toString() 方法的实现而存在的。例如,您可以在 Chromium 源代码中看到此注释:
// Block flow (versus inline flow) is represented by having
// a newline both before and after the element.
这可能更像是一种约定,而不是标准中的内容。所以它可能不是最强大的解决方案。但它很简单,可以轻松验证,并且在大多数情况下应该具有相当标准的行为。
关于javascript - 我如何知道 JavaScript Range 对象是否在同一段落内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34841235/