你知道SimpleHtmlSanitizer.java只接受以下标记(“b”,“em”,“i”,“h1”,“h2”,“h3”,“h4”,“h5”,“h6” ,“hr”,“ul”,“ol”,“li”)。这很好,但我想要“你”,“sub”,“a href =”&不要“hr”,“ul”,“ol”,“li”。所以我需要修改这个类。
现在看看SimpleHtmlSanitizer.java(https://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/safehtml/shared/SimpleHtmlSanitizer.java?r=8653)&看看那个班级的这一行:
Arrays.asList("b", "em", "i", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ul", "ol", "li"));
您可以猜测我们可以将我们希望的列表放入该行代码中。所以我将其修改为:
Arrays.asList("b","i", "u", "h1", "h2", "h3", "h4","a href="));
除了“a href =”之外,该列表中的每个标记都可以正常工作。例如,当我放置字符串Test <a href="car.com"><hr>hello</a>
时,它没有显示正确的输出。正确的输出应该在超链接中包含字符串<hr>hello
。
那么如何在<a href=
答案 0 :(得分:0)
这是因为SimpleHtmlSanitizer
清理无属性标记,<a href="">
不是。因此,您必须使用simpleSanitize()
方法来实现这一点。
但请注意,它没有被提及,所以你可能会使用其他算法,它闻起来不安全。