任何替换" styleWithCSS"对于IE11 / Edge?

时间:2017-02-09 18:47:15

标签: javascript html css internet-explorer microsoft-edge

我知道有两篇关于此的帖子,但有一篇不是我想要的,另一篇是one,但它已经7岁了。也许现在有已知的方法。

我使用Summernote.js编辑器并在内部,只要您想要将文本向左,中间或右侧对齐,它就会执行document.execCommand('command', false, value)。 问题是对于Firefox和IE / Edge,这与WebKit的工作方式不同。每个浏览器都以自己的方式运行。 Chrome使用"text-align: direction"内嵌样式,Firefox和IE / Edge添加了一个名为"align='direction'"的属性。

经过一番调查,我发现你可以使用命令" styleWithCSS"转换那些被弃用的人?属性为内联样式属性。这是完美的,但它只适用于Firefox。

document.execCommand("styleWithCSS", 0, true);

看起来这仍然是微软浏览器中未报告的内容,无论您将哪些值作为参数传递,在上面的控制台中都会返回false。

有没有已知的替代品?

1 个答案:

答案 0 :(得分:0)

所以我设法通过在IE和Edge中遍历编辑器中的元素并将align属性更改为与text-align内联的样式来使其工作。 这是方法的外观:

var styleWithCSSIE = this.styleWithCSSIE = function() {
      if(/MSIE 10/i.test(navigator.userAgent) || /Edge\/\d./i.test(navigator.userAgent)) {
        var items = $(".note-editable *");
        $.each(items, function(i, element) {
          var $elem = $(element);
          var align = $elem.attr('align') || undefined;

          if(!align) {
            return;
          }

          $elem.css('text-align', align);
          $elem.removeAttr('align');
        });
      }
    };

在summernote.js执行document.execCommand(sCmd, false, value)

之后使用它