当我使用、innerHTML、appendChild 和 removeChild 更改文档时,我在 iOS 中遇到了一个持续存在的问题,我的 CSS 声明被完全剥离,我得到了页面的无样式版本。
经过几个小时的谷歌搜索后,我什至无法找到任何与此非常接近的东西。尽管我只在 Android Galaxy s2 和 iPad 2 上进行了测试,但我无法在其他移动设备上复制该问题。
我知道这不是专门的 safari,因为我已经在 PC 上测试了所有主要浏览器,并且 CSS 加载完全正常。这似乎与 iOS 的 javascript 实现有关。
这是我录制的关于该问题的视频(2 分钟长):
http ://www.facebook.com/photo.php?v=4573014247189
编辑:我已经能够使用最低限度的复制行为在实时站点上复制它。
http://mlkart.com/ios_bug
编辑:发现问题,目前正在寻找替代方案,将在找到解决方案时发布,但这是 iOS 中出现问题的原因:
document.documentElement.innerHTML = document.documentElement.innerHTML.replace(oldStuff, newStuff);
最终发生的事情是身体标签之外的所有东西都被错误地剥离了。这可能是一个 iOS javascript 错误或只是一个怪癖,但据我所知,这应该是一个有效的选择器!