所以基本上我有一些 js 添加了带有一些 css 过滤器的样式属性。我添加了该属性的 webkit 前缀和无前缀版本,如下所示:
<img src="image.jpg" style="filter: blur(10px); -webkit-filter: blur(10px)"/>
我需要保存该 html 并在不同的浏览器中显示它。但是,过滤器在不同的浏览器中不可见,因为未知属性已被删除。例如,如果过滤器是在 webkit 中添加的,则浏览器会删除非前缀属性,从而阻止 html 稍后在 firefox 中工作。我想要的是一种方法来覆盖浏览器从 style 属性中删除未知属性,以便在不同的浏览器中可以看到未加前缀的版本。我知道我可以添加一些重新计算页面加载过滤器的 js,但我不想这样做。有更好的解决方案吗?
最佳答案
我有你的例子here并且您可以看到(例如在 Chrome 中)样式属性甚至没有使用不适用的 css 属性进行更新
$().html()
只会得到那些。
在您的问题中,您可能真的不需要前缀。
值得注意的是这个事实,取自 jQuery decumentation,即
As of jQuery 1.8, the .css() setter will automatically take care of prefixing the property name.
所以你不需要添加所有这些,jQuery 1.8+ 会处理它。
按照检索带有动态添加样式的 html 的主题 - 如果您首先使用 .attr('style', 'filter: -webkit-filter: blur(10px)') 添加它,则可以使用 .html() 检索它;
关于html - 防止从 style 属性中删除未知的 css 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29176551/