如何让 iframe 元素知道传递给它的内容是 xml

How to let iframe element know that the content being passed to it is xml

提问人:Vaishnav Sivadas 提问时间:3/18/2022 更新时间:3/18/2022 访问量:191

问:

我正在努力在运行时检索一些 xhtml 内容并将其显示在 html 页面的 iframe 元素中。我在这里试图解决的问题是,作为 xhtml 内容一部分的标题标签被作为自关闭标签 () 传递,当内容被传递到 iframe 时,它被作为 html 使用,这导致内容根本不显示在 iframe 中。<title/>

在下面添加 dom 的屏幕截图以供参考:enter image description here

请注意,当我尝试在将 xhtml 内容存储为单独的 xhtml 文件并使用 src 标签(指定相同的路径)检索它后使用它时,xml 解析正确完成,我也可以看到正在显示的文本内容。但不幸的是,在我试图修复它的实际场景中,内容实际上是实时生成的,因此使用 src 属性不是一种选择。

我还尝试访问 iframe 的 contentDocument 并直接在那里添加 xml 内容,但即使这样似乎也无法解决问题。

有人知道解决此问题的任何解决方法吗?

提前致谢。

JavaScript iframe XML 解析 XHTML

评论


答:

1赞 Alohci 3/18/2022 #1

srcdoc 属性采用“text/html”内容类型。考虑将 src 属性与如下所示的 url 一起使用:data:

<iframe src="data:application/xhtml+xml,
   <html xmlns='http://www.w3.org/1999/xhtml'>
     <head>
       <title/>
     </head>
     <body>
       <p>Hello world</p>
     </body>
   </html>">
</iframe>

评论

0赞 Vaishnav Sivadas 3/18/2022
感谢您的回复,此方法似乎在 chrome 中正确工作,但在 IE 中不起作用,不幸的是,我正在尝试在 IE 中完成这项工作:/