我一直在遇到影响Microsoft Edge的奇怪问题。我正在使用painterro javascript库来构建图像编辑器,并且大多数都运行良好。但是有些元素没有正确呈现,我无法弄清楚原因。它似乎只影响Edge。 Firefox,Chrome,Safari,甚至IE11都运行良好。
像这样的简单页面显示了问题:
<html>
<head>
<script src="https://github.com/ivictbor/painterro/releases/download/v0.2.57/painterro-0.2.57.min.js"></script>
</head>
<body>
<script>
Painterro().show();
</script>
</body>
</html>
页面初始加载时,不显示工具栏。元素存在于DOM中,在Dev工具中单击它们会使它们逐渐出现。水平调整浏览器窗口的大小也会导致它出现,可能是因为工具栏样式稍有变化并触发它重绘。
同样的问题也会影响设置和颜色选择器对话框。
我有点困惑,它看起来像一个可能的浏览器bug但我不能确定。我无法找到遇到此问题的任何其他任何示例。还有其他人遇到过类似的问题吗?
非常感谢!
我也有同样的问题,发现[隐藏]属性在边缘网页上呈现内容时有一些问题(因为它在谷歌Chrome,Mozilla,IE中运行得非常好)并且删除了属性网站后加载完全正常。
所以不使用[hidden]而是使用* ngIf显示和隐藏内容。
我发现这个在微软边缘不起作用的可能原因是: -
隐藏的全局属性是一个布尔属性,表示该元素尚未或不再相关。因此,浏览器不会使用隐藏属性集渲染元素。
浏览器将“display:none”样式附加到具有隐藏属性的元素。当组件加载时,样式“display:none”不会自动更新。
并且* ngIf不显示/隐藏基于隐藏的显示属性的元素。它的工作原理是添加和删除DOM中的元素。
这是由于使用了hidden
属性。出于某种原因,在删除属性后,元素并不总是被重绘。需要更多的研究,但它看起来像Edge中的一个错误。
用display:none替换隐藏属性后,它可以正常工作。
用[hidden]
取代*ngIf
解决了这个问题。