目前我正在开发基于插件和小部件的CMS。
小部件是一个html / javasctript代码片段,它始终位于主div(比如它的widget div)元素中。
使用jquery和jquery-ui作为javascript框架。
我的问题:
如何在包含div的内容中限制/沙箱html的小部件,以便如果有任何不正确的html可以打破所有页面的布局可以避免?
----编辑----
好的我知道了,服务器端是否可行/可能?
答案 0 :(得分:1)
你不能。
假设正确的HTML,您可以给它一个固定的高度和宽度,将溢出设置为隐藏,滚动或自动,并将位置设置为相对以停止CSS打破布局。
然而,没有任何客户端可以阻止小部件(例如)额外</div>
过早关闭容器。
答案 1 :(得分:1)
我们如何限制/沙盒的html 包含div的小部件,以便 如果是任何不正确的HTML 可以打破所有页面的布局即可 要避免吗?
如果您需要强有力地执行此操作,唯一的选择是使用iframe
。
如果小部件HTML包含以下内容:
</div></div></div></div></div></div></div></div></div>
这将打破任何页面(使用div
s,换句话说:所有页面。)
来自现已删除的评论:
关于您的更新,应该 工作。 HTML Tidy之一, http://www.php.net/manual/en/domdocument.loadhtml.php, 或HTML Purifier应该是你的 寻找。
答案 2 :(得分:1)
如果您想确保小部件不会影响您网站的其他部分,则必须将其放入iframe
(似乎是common practice)。