2017-05-29 16 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ページにバインドされています。ビューモデルでは、我々は、それが空白のページが表示されている

(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> 

ここでJSONレスポンスから私のレンダリングページがGmailのページにリダイレクト取得されていない情報を取得します。そのURLページにリダイレクトできる方法があるかどうか私に教えてください。このview.htmlはポップアップウィンドウで表示されます。

+0

これはおそらく、あなたのhtmlがまだレンダリングされていない場合に役立つhttps://stackoverflow.com/questions/20089022/redirect-to-url-taken-from-json-response –

+0

@JoseLuisに役立ちます。しかし、ここでhtmlがレンダリングされてから、ページがurlでリロードされなければならないと思いますが、とにかく私はwindow.location.replaceを使ってみます – Krishna

+0

div 'data'にGMail Webページを挿入しようとすると、それを行うことができます。あなたがGMail UR1にフォームを提出する場合、GMailはこの提出に応答する必要があります。私はそれが反応するかどうか分からない。おそらく、フォームよりも優れたアプローチであれば、リンクになるでしょう。 –

答えて

1

あなたのjsonには、タグで始まるWebページ全体があります。このHTMLをdivに挿入することはできません。

あなたはAjaxリクエストとして、このJSONを取得している場合は、この操作を行うことができます:あなたは、JSON応答のいずれかであなたの実際のウェブページを「交換」されている

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

この道を。

+1

ありがとうございました。 – Krishna

関連する問題