2013-03-12 67 views
1

我得到了一個簡單的服務器響應,這是一個html文件,我希望在不將文件保存到我的工作區或機器的情況下在iFrame中顯示相同的響應。iFrame:如何使用javascript將服務器響應(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

+0

當前p型年齡*是*服務器響應。你想將當前頁面內容複製到Iframe嗎? – 2013-03-12 19:38:05

+0

你是如何產生你的迴應?您是使用框架,還是自己在編寫AJAX調用? – 2013-03-12 19:38:14

+0

另外,您是否需要發出POST請求,或者是否會發出GET請求? – 2013-03-12 19:44:04

回答

4

香草的JavaScript:

document.MyFrame.document.body.innerHTML = serverResponse 

..where你有<iframe name="MyFrame"></iframe>

+0

謝謝@Diodeus。 – Gendaful 2013-03-17 20:16:25

0

不知道這是否會工作,我做同樣的事情使用jQuery(但可以很容易地做到這一點沒有)......

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