我们最近发现了一个"故障"在新浏览器中 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 元素 - 已不再使用。它始终验证所有样式,因此最新定义有效。
答案 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
}