"styleWithCSS" 有没有 IE11/Edge 的替代品?
Any replacement for "styleWithCSS" for IE11/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);
看起来这仍然不受 Microsoft 浏览器的支持,在上面的控制台中 returns 始终为 false,无论您将什么值作为参数传递。
有已知的替代品吗?
所以我设法通过仅针对 IE 和 Edge 的编辑器中的元素进行迭代并将对齐属性更改为与 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)
之后才使用它
我知道有两篇关于此的帖子,但一篇不是我要找的,另一篇 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);
看起来这仍然不受 Microsoft 浏览器的支持,在上面的控制台中 returns 始终为 false,无论您将什么值作为参数传递。
有已知的替代品吗?
所以我设法通过仅针对 IE 和 Edge 的编辑器中的元素进行迭代并将对齐属性更改为与 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)