2011-06-29 6 views
0

iFrameにHTMLを動的に注入する必要があります。どのように私はjs varとして渡すことができるように、それが適切にエスケープされるように、このHTMLを "ラップ"できますか?大きなHTMLファイルをiFrameに挿入するにはどうすればよいですか?

これは私が持っているものです。これまでのところ、htmlの最初の行が 'content'に格納されているように見えますが、残りはブラウザウィンドウ(フレーム外)に表示されます。

<script type="text/javascript" language="javascript"> 
    var content = <%=Model.Html%>; 
    var doc = document.getElementById("testFrame"); 
    if (iframe.contentDocument) 
     doc = iframe.contentDocument; // For NS6 
    else if (iframe.contentWindow) 
     doc = iframe.contentWindow.document; // For IE5.5 and IE6 
    // Put the content in the iframe 
    doc.open(); 
    doc.writeln(content); 
    doc.close(); 
</script> 

私はページ上のiFrameを持って

ID = "testFrame"

<% = Model.Html%>は、私が注入しようとしているHTMLが含まれています。それはいくつかのJSインラインを含んでいます。この文書は、私が "ラップする"ために必要なものです。

答えて

0

を使用することができます。

iFrameのsrcをこの新しいアクションに設定しました。

<iframe id="testFrame" name="testFrame" src ="<%= Url.Action("GetHtml","MyController", new{href = Model.Href}) %>>" width="100%" height="600"> 
    <p> 
     Your browser does not support iframes. 
    </p> 
</iframe> 

コントローラー:そう同様

public ActionResult GetHtml() 
{ 
... 
return Content(htmlContent, "text/html"); 
} 
0

iframeの.src属性を使用したことがありますか?

var doc = document.getElementById("testFrame"); 
doc.src = <%=Model.html%>; 

またはあなたはまた、AJAXでそれをリフレッシュし、これがHTMLを返す私はちょうど新しいアクション(GetHtml)を作成したASP.NET MVCアプリケーションであるのでdoc.src=req.responseText;

+0

ません。..病気はそれを試してみてください。.. – Nick

+0

同じ問題..提案に感謝を。私はHTMLが何とかエスケープする必要がありますが表示されます。 – Nick

関連する問題