我正在开发一个系统,允许用户将内容嵌入到他们有权访问的网页中。
从概念上讲,用户会在其页面上创建一个具有特定ID的div(让我们称之为#34; myId"),并包含一个我控制的JavaScript文件,它基本上会将标记注入& #34; MYID"
返回的标记将包含带有内联样式的div。我不能允许将此内容嵌入其页面的用户覆盖CSS样式。
我已经阅读了数百篇关于CSS特性的文章和主题,重要等等。阻止用户覆盖你的风格的唯一真正方法是使用iFrame。
以下是一些同事的三篇文章,我一直在蹦蹦跳跳。 http://weblog.bocoup.com/3pjs-css-defense/ https://speakerdeck.com/antonkovalyov/achieving-harmony-with-third-party-javascript http://weblog.bocoup.com/3pjs-css-delivery/
其中一个问题是iOS将停止支持iFrame,老实说,多年来我们都被告知不要使用iFrame。虽然它看起来像是完美且唯一的解决方案但确实听起来很糟糕" hacky"。
有没有人对任何其他解决方案有任何见解?我看了一下LinkedIn是如何嵌入他们的" connect with linkedIn button"而且他们只是用一个重要的东西来包装每一个属性值(这个a)看起来超级hacky而且b)没有说明未申报的属性和值。)
答案 0 :(得分:1)
你最关心的是!重要的是他们仍然可以使用!important关键字后来声明覆盖它。
你对iFrames是正确的。
所以你没有多少选择:
一个选项是使用自定义的非通用包类名称添加您自己的CSS声明,以便用户覆盖它们的可能性非常小:
.content h1
将成为
.my-custom-css .content h1