iFrame:如何使用javascript直接在iFrame中显示服务器响应(HTML)?

时间:2013-03-12 19:27:20

标签: javascript html html5 iframe

我收到一个简单的服务器响应,这是一个html文件,我想在iFrame中显示相同的内容而不将文件保存到我的工作区或机器。

我正在进行如下的ajax调用。

                   Ext.Ajax.request({
                        url : 'url',
                        method : 'POST',
                        success : function(response) {

                        var responseHtmlStr =response.responseText;

我在responseHtmlStr中获得的示例服务器响应如下所示。

<!DOCTYPE html>
<html>
<head>
<script>
function copyText()
{
alert('It is clicked');
}
</script>
</head>
<body>

Field1: <input type="text" id="field1" value="Hello World!"><br>
Field2: <input type="text" id="field2">
<br><br>
<button onclick="copyText()">Copy Text</button>

</body>
</html>

我用来创建iFrame的代码如下所示。

因为我不想将服务器响应存储在文件中的服务器中。如何直接在iFrame中提供服务器响应?

我尝试document.getElementsByTagName('iframe')[0].contentWindow.document.write(serverResponse);​,但它不能使用上面的代码。

请提出其他建议。提前谢谢。

由于 Gendaful

2 个答案:

答案 0 :(得分:5)

使用vanilla JavaScript:

document.MyFrame.document.body.innerHTML = serverResponse

..您有<iframe name="MyFrame"></iframe>

的地方

答案 1 :(得分:0)

不确定这是否有用,我使用jquery做了类似的事情(但是可以轻松地做到这一点)......

$('iframe').contents().find("html")
    .append($("<head></head><body> blah blah blah </body>"));