0

我有一个网页,我通过 Ajax 流式传输数据(使用 readyState 3 等)。这在大多数浏览器上都可以正常工作,但在 IE7-9 上,即使 readyState 为 3,我似乎也无法阅读到目前为止收到的文本(虽然我已经读过你可以在 IE9 中做到这一点,但它只是在我试试看..)。

相反,作为后备,我使用一个不可见的 iframe 来请求数据,然后我从那里读取数据 - 问题是数据,虽然它是 JSON 编码的,但内部也包含实际的 HTML。我需要数据保持原样,但由于它位于 iframe 内,因此 HTML 会被浏览器解析。

基本上,我想要的只是浏览器不解析该数据中的 HTML。我最初认为这可以通过使用正确的内容类型轻松完成,但到目前为止它似乎不起作用(例如,我尝试了 application/octet-stream)。

我想我可以通过将整个数据放在评论中来解决这个问题,但我宁愿不这样做。在这种情况下,阻止浏览器解析此 HTML 的最简单方法是什么?还是我只是使用了错误的内容类型?

谢谢你。

4

2 回答 2

0

使用 <xmp> 标记,该标记告诉浏览器您的内容是 CDDATA 并忽略其中的所有 HTML 标记。

<xmp><font color="red"><b>我的数据在这里</b></font></xmp>

将打印:

<font color="red"><b>我的数据在这里</b></font>

于 2012-07-22T13:50:22.943 回答
0

<xmp>标签已弃用,不再是标准的一部分。<textarea>如果速度在您的情况下至关重要,那当然是一种选择。第三种选择当然是在将内容发送到客户端之前使用您正在使用的任何服务器技术对您的内容进行 HTML 编码,并在客户端上使用该技术decode()来获取 HTML。

于 2012-07-22T14:29:31.660 回答