EDGE不支持样式元素的属性禁用

时间:2015-08-07 13:11:40

标签: styles microsoft-edge

我们最近发现了一个"故障"在新浏览器中 EDGE (Windows 10)。 我们使用多个样式元素来动态地改变我们的Web应用程序的外观和感觉,例如:

<style id="st1"></style>
<style id="st2"></style>
<style id="st3"></style>

在运行时,我们通过更改样式 emelemts的禁用属性来控制不同样式的有效性(通过javascript):

document.getElementById("st2").disabled=true

到目前为止一切顺利,但我们在 EDGE (Windows 10默认浏览器)中的第一步显示出一些可怕的样式......似乎新引擎不支持更改已禁用属性 - style 元素 - 已不再使用。它始终验证所有样式,因此最新定义有效。

1 个答案:

答案 0 :(得分:1)

我们针对此场景的第一个(最佳)解决方法(我们的场景,见上文)是操纵样式元素的 media 属性(属性),例如:< / p>

<!-- empty value -->
document.getElementById("st2").media=''
<!-- or 'fantasy'-value -->
document.getElementById("st2").media='disabled'

现在设计/风格与以前一样很好地显示:)

编辑:重新启用样式元素&#34;这种方式&#34;应该做的事情:

document.getElementById("st2").media='all'

<!-- sample snippet -->
if( configuration.processLayoutStyle == item.id ) {
    item.dom.disabled = false;   // old-fashioned
    item.dom.media = 'all';      // "our" workaround
    this.application.processLayoutStyle = configuration.processLayoutStyle;
} else {
    item.dom.disabled = true;    // old-fashioned
    item.dom.media = 'disabled'; // "our" workaround
}