我正在开发一个允许用户将内容嵌入到他们有权访问的网页中的系统。
从概念上讲,用户将在他们的页面上创建一个具有特定 ID(我们称之为“myId”)的 div,并包含一个我控制的 JavaScript 文件,该文件基本上会将标记注入“myId”。
返回的标记将包括带有内联样式的 div。我不能允许将此内容嵌入其页面的用户覆盖 CSS 样式。
我已经阅读了数百篇关于 CSS 特殊性、!Important 等的文章和线程。似乎阻止用户覆盖您的样式的唯一真正方法是使用 iFrame。
以下是一些同事的三篇文章,我一直在弹跳。 http://weblog.bocoup.com/3pjs-css-defense/ https://speakerdeck.com/antonkovalyov/achieving-harmony-with-third-party-javascript http://weblog.bocoup.com/3pjs-css -交货/
其中一个担忧是 iOS 将停止支持 iFrame,老实说,多年来我们都被告知不要使用 iFrame。虽然它看起来是完美且唯一的解决方案,但它确实听起来“hacky”。
有没有人对任何其他解决方案有任何见解?我查看了linkedIn如何嵌入他们的“与linkedIn按钮连接”,他们只是用一个!important(a)看起来超级hacky并且b)不考虑未声明的属性和值)包装每个属性值。