summernote:如何验证用户当前选择是否在特定的html标记内?

时间:2016-10-18 17:17:20

标签: javascript jquery html summernote

我想在summernote中为按钮添加一个行为,为选择添加一个h4标签:

heading: function (context) {
            var ui = $.summernote.ui;
            var button = ui.button({
              contents: 'H',
              click: function () {
                var range = context.invoke('editor.createRange');
                  if (range.toString()) {
                    var heading = document.createElement('h4');
                    $(heading).text(range.toString());
                    context.invoke('editor.insertNode', heading);
                  } else {
                    context.invoke('editor.formatH4');
                  }
              }
            });

使用当前格式H4不适用于我的用例,因为我想将此标记添加到用户范围选择而不是仅将整行格式化为h4

现在我想向我的按钮添加行为,以便在光标位于h4标记内时选择它

我尝试使用summernote api创建一个范围,但我不知道如何使用这个创建的范围来查看我是否在h4标签内

1 个答案:

答案 0 :(得分:1)

我找到了解决方案:

点击并按下键我添加了这个:

window.getSelection().anchorNode.parentNode.nodeName

这给了我nodeName,我可以使用它来激活或停用按钮

我在这里找到了这个解决方案:

How can I get the element in which highlighted text is in?