【问题标题】:InsertOrderedList doesn't make new list with marked textInsertOrderedList 不会创建带有标记文本的新列表
【发布时间】:2016-08-18 06:02:48
【问题描述】:

我创建了一个 contenteditable div 并添加了格式化功能。

我添加的功能之一是从段落创建列表,我将重现以下步骤。

====

1) 这是我希望它的一部分成为列表的段落。

2) 所以我标记了文本以使其成为列表 ,我使用https://github.com/kenshin54/popline/的插件(自己修改)。

它使用 document.execCommand("InsertOrderedList", false); 用于创建列表

3) 然后在我点击按钮后,它会将整个段落列出。我只希望标记的文本是(仅用于“Sed imperdiet....orci”)

我在 Stackoverflow 而不是 Github 存储库问题 (https://github.com/kenshin54/popline/) 上发帖的原因是我不确定这是否是一个问题,我只是希望它能够像那样工作。

有人有什么建议吗?

【问题讨论】:

    标签: javascript html dom browser


    【解决方案1】:

    Bun,你的回答对我不起作用,但这样做:

      var sel = rangy.getSelection();
      var range = sel.rangeCount ? sel.getRangeAt(0) : null;
      if (range) {
           var el = document.createElement("li");
           if (range.canSurroundContents(el)) {
               range.surroundContents(el);
               var ul = document.createElement("ul");
               range.surroundContents(ul);
           } else {
               alert("Unable to surround range because range partially selects a non-text node..");
           }
      }
    

    (主要取自 rangy core 演示)

    【讨论】:

      【解决方案2】:

      经过长时间寻找解决方法,kenshin (https://github.com/kenshin54) 刚刚救了我的命。

      他给了我这个http://jsfiddle.net/j83ueh6g

      您可以使用document.execCommand('insertOrderedList', false);,就像它的工作方式一样。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-23
        • 2014-01-08
        • 1970-01-01
        • 1970-01-01
        • 2011-08-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多