【问题标题】:Rangy selection not working on Microsoft EdgeRangy 选择在 Microsoft Edge 上不起作用
【发布时间】:2020-03-07 20:42:38
【问题描述】:

以下代码 sn-p 适用于除 Microsoft Edge 之外的所有浏览器。

$rootScope.highlights = $window.rangy.createHighlighter();
$rootScope.highlights.addClassApplier($window.rangy.createClassApplier('commented-text'));
$rootScope.highlights.highlightSelection('commented-text');
$window.getSelection().collapseToStart();

有什么我们需要专门为 Edge 添加的吗?

【问题讨论】:

  • 尝试使用F12开发者控制台工具检查是否有错误?并使用网络工具检查Rangy参考加载是否成功?另外,从文档看,它似乎支持Microsoft Edge浏览器,请尝试清除浏览器缓存并重新测试您的代码。如果仍然无法正常工作,您能否像Minimal, Complete, and Verifiable example 一样发布足够的代码来重现问题。
  • @MSFT - 尝试了以上所有方法,但还没有结果。
  • 无错误且引用加载成功?看来您使用的是angularjs,您可以发布足够的代码来重现问题,如Minimal, Complete, and Verifiable example
  • 你确定你应该在你的第一行末尾有两个分号吗?
  • 抱歉,打错了,已修正。

标签: javascript angularjs microsoft-edge rangy


【解决方案1】:

经过大量研究,得出的解决方案是 rangy.createHighlighter() 没有任何参数不适用于 Edge。

您需要指定 "TextRange" 附加参数(见下文)。

默认为“textContent”。

$rootScope.highlights = rangy.createHighlighter(window.document, "TextRange");

参考:https://github.com/timdown/rangy/wiki/Highlighter-Module

【讨论】:

    【解决方案2】:

    在 rangy github https://github.com/timdown/rangy/issues/368 上有一个未解决的问题,提出了某种可能的解决方案。

    注释掉rangy-core.js第2277行的方法

    也许这对你也有帮助?

    【讨论】:

    • 这是一个很好的解决方案,但编辑库是一种不好的做法 :)
    猜你喜欢
    • 1970-01-01
    • 2015-11-30
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 2016-11-24
    • 1970-01-01
    相关资源
    最近更新 更多