我有一个字符串(通过ajax获取),这是一个完整的html文档(doctype为< / html>)。有没有人知道将其加载到iframe的方法?
我不能简单地指定在iframe的src中返回文档的url,因为响应可能来自帖子,并且重复它可能会产生不良影响。另外,我无法第一次将它提交给iframe,因为我无法完全预测结果将是一个文档,而不是一些json。基本上,我不记得网址,我必须能够使用我的版本(字符串)。
jQuery是公平的游戏,因为那是我正在使用的。
答案 0 :(得分:1)
@LarsW 不需要使用 jQuery。例如,如果 html 字符串是驻留在文件系统中的文件,但不能从 www 访问(或者您必须在 PHP 中构造它),则可以使用此 PHP 代码
$htmlText = "data:text/html;base64,".base64_encode(file_get_contents("someFolder/file.html"));
echo "<iframe src='$htmlText'></iframe>";
我遇到了没有 base64 扩展的问题,因为 file.html 中的引号会破坏 HTML 代码。
答案 1 :(得分:0)
您可以使用data URI执行此操作。数据URI是一种加载内联数据的方法,就像您正在加载外部数据一样。它们看起来像这样:data:<mimetype>,<data>
。对于HTML,mimetype为text/html
,在您的情况下,数据类似于:<!DOCTYPE><html><head><title>Iframe</title></head><body>Hi!</body></html>
。如果我们将它放在数据URI中,我们会得到如下内容:
data:text/html,<!DOCTYPE><html><head><title>Iframe</title></head><body>Hi!</body></html>
当我们将其设置为src
的{{1}}时,它看起来像这样。
iframe
&#13;
var string = '<!DOCTYPE><html><head><title>Iframe</title></head><body>Hi!</body></html>',
iframe = $('#iframe')
iframe.attr('src', 'data:text/html,' + string)
&#13;