影响整个网站的文字样式

时间:2010-02-09 17:26:48

标签: html css

我有输入,因此用户可以键入html或纯文本。当用户复制&例如,从MS Word粘贴文本,它会生成一个奇怪的html。然后,当您查看该主题时,您可以看到整个页面的样式受到影响。我真的不知道生成的html是否有未封闭的标签或其他东西,但看起来确实如此,因此页面的样式会受到影响。

是否有人知道如何从整个页面的样式中“隔离”该div的html(或容器中的任何内容)?

4 个答案:

答案 0 :(得分:3)

如果没有在IFRAME中显示内容,则无法真正做到这一点。在这种情况下我通常做的是在内容中使用标记剥离逻辑。从安全角度来看,你真的不想允许任意HTML,但即使你不关心你的用户输入什么,你应该剥离无效的HTML标签(Word习惯于创建具有奇怪的名称空间外观的标签,如o:p),并在结果上运行类似Tidy的内容,以确保每个标签都正确关闭。那里有许多适用于.NET的Tidy库; here's one

Here's a quick cut-and-paste过去我是如何做到这一点的。请注意,该类实现了我在其中使用的项目的接口,但您可以得到一般的想法。

答案 1 :(得分:0)

从单词复制文字可以包含<style>标签。隔离这些样式的唯一可靠方法是将输入控件放在<iframe>

答案 2 :(得分:0)

您可以清理输入或将其显示在IFrame

答案 3 :(得分:0)

它是我,我除了基本格式(例如,粗体,斜体)之外的所有内容并使用Tidy。这就是我最终要做的事情,我将所有CSS样式的单词转换为<strong><em>等等。