Yii 命令编辑器 execCommand('strikethrough') 不工作

Yii 1.x imperavi redactor execCommand('strikethrough') not working

Chrome58 更新后,粗体、斜体和下划线等一些功能停止工作。在调试时我发现 execCommand('strikethrough') 没有删除所选文本。

formatMultiple: function(tag)
            {
                this.inline.formatConvert(tag);

                this.selection.save();
                document.execCommand('strikethrough'); //HERE, IT IS NOT STRIKING THE TEXT

                this.$editor.find('strike').each($.proxy(function(i,s)
                {
                    var $el = $(s);

                    this.inline.formatRemoveSameChildren($el, tag);

                    var $span;
                    if (this.inline.type)
                    {
                        $span = $('<span>').attr('data-redactor-tag', tag).attr('data-verified', 'redactor');
                        $span = this.inline.setFormat($span);
                    }
                    else
                    {
                        $span = $('<' + tag + '>').attr('data-redactor-tag', tag).attr('data-verified', 'redactor');
                    }

                    $el.replaceWith($span.html($el.contents()));

                    if (tag == 'span')
                    {
                        var $parent = $span.parent();
                        if ($parent && $parent[0].tagName == 'SPAN' && this.inline.type == 'style')
                        {
                            var arr = this.inline.value.split(';');

                            for (var z = 0; z < arr.length; z++)
                            {
                                if (arr[z] === '') return;
                                var style = arr[z].split(':');
                                $parent.css(style[0], '');

                                if (this.utils.removeEmptyAttr($parent, 'style'))
                                {
                                    $parent.replaceWith($parent.contents());
                                }

                            }

                        }
                    }

                }, this));

                // clear text decoration
                if (tag != 'span')
                {
                    this.$editor.find(this.opts.inlineTags.join(', ')).each($.proxy(function(i,s)
                    {
                        var $el = $(s);
                        var property = $el.css('text-decoration');
                        if (property == 'line-through')
                        {
                            $el.css('text-decoration', '');
                            this.utils.removeEmptyAttr($el, 'style');
                        }
                    }, this));
                }

                if (tag != 'del')
                {
                    var _this = this;
                    this.$editor.find('inline').each(function(i,s)
                    {
                        _this.utils.replaceToTag(s, 'del');
                    });
                }

                this.selection.restore();
                this.code.sync();

            },

我测试了用 document.execCommand('strikethrough') 创建 fiddle 并且它有效。即使在浏览器的控制台中,它也能正常工作。想知道可以改变什么?

这里已经报告了同样的问题: 那里提供了解决方案。请看一看。