Html 代码作为 IFRAME 源而不是 URL

新手上路,请多包涵

这个 IFRAME 的标准代码,有没有办法用 Just html 代码替换 src URL?所以我的问题很简单,我有一个页面,它从 MYSQL 加载一个 HTML 主体我想在一个框架中显示该代码,以便它呈现它自己独立于页面的其余部分并在该特定边界的范围内。

 <iframe src="http://example.com" name="test" height="120" width="600">You need a Frames Capable browser to view this content.</iframe>

原文由 Max 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 712
2 个回答

您可以使用数据 URL 来执行此操作。这包括单个 HTML 字符串中的整个文档。例如,以下 HTML:

 <html><body>foo</body></html>

可以这样编码:

 data:text/html;charset=utf-8,%3Chtml%3E%3Cbody%3Efoo%3C/body%3E%3C/html%3E

然后设置为 iframe 的 src 属性。 例子


编辑:另一种选择是使用 Javascript 执行此操作。这几乎肯定是我会选择的技术。您无法保证浏览器接受多长时间的数据 URL。 Javascript 技术看起来像这样:

 var iframe = document.getElementById('foo'),
    iframedoc = iframe.contentDocument || iframe.contentWindow.document;

iframedoc.body.innerHTML = 'Hello world';

例子


编辑 2(2017 年 12 月) :使用 Html5 的 srcdoc 属性,就像 Saurabh Chandra Patel 的回答一样,现在应该接受谁的回答!如果你能 有效地检测 IE/Edge ,一个技巧是只对它们使用 srcdoc-polyfill 库,并在所有非 IE/Edge 浏览器中使用“纯”srcdoc 属性(检查 caniuse.com 以确保)。

 <iframe srcdoc="<html><body>Hello, <b>world</b>.</body></html>"></iframe>

原文由 lonesomeday 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 html5 的新属性 srcdoc (srcdoc-polyfill) Docs

 <iframe srcdoc="<html><body>Hello, <b>world</b>.</body></html>"></iframe>

浏览器支持 - 在以下浏览器中测试:

 Microsoft Internet Explorer
6, 7, 8, 9, 10, 11
Microsoft Edge
13, 14
Safari
4, 5.0, 5.1 ,6, 6.2, 7.1, 8, 9.1, 10
Google Chrome
14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24.0.1312.5 (beta), 25.0.1364.5 (dev), 55
Opera
11.1, 11.5, 11.6, 12.10, 12.11 (beta) , 42
Mozilla FireFox
3.0, 3.6, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (beta), 50

原文由 Saurabh Chandra Patel 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题