我将Rangy与AngularJS结合使用。 Angular用ng-click替换href,因此调用函数变为:
<a ng-click='theFunctionThatCallsRangy()'>Get Range</a>
不幸的是,
range.commonAncestorContainer
返回锚点的节点而不是选择:
<a ng-click='theFunctionThatCallsRangy()'>Get Range</a>
和
range.collapsed
返回true。这使我相信单击负责生成范围的锚点会破坏选择,然后才能从选择中创建范围。
我将锚点修改为:
<a href='#' ng-click='theFunctionThatCallsRangy()'>Get Range</a>
按预期创建范围。但是,添加href ='#'会导致Angular重定向到根域('/')。为<a>
换出<button>
也有效,但这会破坏现有的CSS。
为什么会这样? Rangy是否希望href
出现在锚标签中?解决方法?
答案 0 :(得分:0)
Rangy仅报告浏览器对其进行选择的内容,并且对href
属性是否存在没有意见。正确诊断后,问题是当您单击<a>
元素时,现有选择会在click事件触发时被销毁。假设您继续使用这些<a>
元素,您的选项是:
mousedown
事件<a>
element unselectable,显然会产生自己的后果