2017-05-29 52 views
0

我有一個需要重定向到google郵件頁面的頁面。考慮我的JSON響應就像下面這樣當綁定html時不會發生敲除表單提交

var jsonResponse = { 
'htmlData': '<html><head></head><body onLoad="document.myForm.submit()"><noscript><p>JavaScript is required. Enable JavaScript to use OAM Server.</p></noscript><form action="https://mail.google.com" method="post" name="myForm"></form></body></html>' 
}; 

哪個是綁定到像下面的敲除html頁面。在視圖模型中,我們將會從JSON響應

(viewModel.js) 
public responseHtml: KnockoutObservable<string> = ko.observable<string>(); 
var response= jsonResponse.htmlData; 
this.responseHtml(response); 

(view.html) 
<div id="kk"> 
    <div id="data" data-bind="html: responseHtml"></div> 
</div> 

這裏我的渲染頁面不會被重定向到Gmail頁面,它會顯示一個空白頁的信息。你能否讓我知道是否有方法,我們可以在那裏重定向到該網頁頁面。這個view.html在彈出窗口中呈現。

+0

也許這有助於:https://stackoverflow.com/questions/20089022/redirect-to-url-taken-from-json-response –

+0

@JoseLuis,這有助於當你的HTML還沒有呈現。但在這裏呈現的HTML,然後頁面應該重新加載的網址,反正我會嘗試使用window.location.replace – Krishna

+0

如果您嘗試「插入」的div'數據'的GMail網頁,我不知道你可以做到這一點。如果您向GMail URl提交表格,則GMail應對此提交做出迴應;我不確定它會迴應。如果比形式更好的方法可能是一個鏈接。 –

回答

1

您的json有一個完整的網頁,從標籤開始。你不能在div中插入這個html。

如果您收到此JSON作爲一個Ajax請求,你可以這樣做:

  $.ajax(
      { 
       .. , 
       success: function (data) { 
        document.open(); 
        document.write(data.htmlData); 
        document.close(); 
       }, 
       error: function (jqXHR, textStatus, errorThrown) { 
        alert(jqXHR.responseText); 
       } 
      }); 

這樣,你與一個在JSON響應「代替」你的實際網頁。

+1

感謝它的工作。 – Krishna