2009-08-14 19 views
9

実行時にコードの背後にあるIframeのHTMLを設定しようとしています。背後にあるコードでIFrame InnerHtmlをコードビハインドから変更する

<asp:Button ID="btnChange" runat="server" Text="Change iframe content" 
onclick="btnChange_Click" /> 

<br /> 

<iframe id="myIframe" runat="server" /> 

::私は私のaspxページで

protected void btnChange_Click(object sender, EventArgs e) 
{ 
    myIframe.InnerHtml = "<h1>Contents Changed</h1>"; 
} 

私はこれを実行すると....それはバックポストが、myIframeの内容は変更されません。まったく... 何が悪いのですか?

イムが実装するので、私は 基本的に..私のチェックアウトプロセスに3Dセキュアこれを実行する必要が

:3Dた場合、フォームが支払いゲートウェイで、小切手を提出している)

1)顧客がクレジットカードの詳細 2に入り、安全が必要です。そうであれば、銀行の安全な場所に情報を入力するためのURLが生成されます。 3)私はこのURLにPOSTリクエストを作成し、長いセキュリティトークンとその他の情報を含んでいます。このPOSTリクエストから返されたHTMLを取得し、iFrameに表示する必要があります。

<html> 
<head> 
<title>Please Authenticate</title> 
</head> 
<body onload="OnLoadEvent();"> 
<form name="downloadForm" action="https://mybank.com/vbyv/verify" method="POST"> 
<input type="hidden" name="PaReq" value="AAABBBBCCCCHHHHHH="> 
<input type="hidden" name="TermUrl" value="https:// www. MyWidgits.Com/next.cgi"> 
<input type="hidden" name="MD" value="200304012012a"> 
</form> 

<script language="Javascript"> <!-- function OnLoadEvent(){ document.downloadForm.target = "ACSframe"; document.downloadForm.submit(); } //--> </script> 

<!-- MERCHANT TO FILL IN THEIR OWN BRANDING HERE --> 
<iframe src="blank.htm" name="ACSframe" width="390" height="450" frameborder="0"> 
</iframe> 
<!-- MERCHANT TO FILL IN THEIR OWN BRANDING HERE --> 
</body> 
</html> 
+0

iframeが選択された理由は私の推測ですが、投稿応答にHTMLの頭と体が含まれているからですタグ – mangokun

+1

はおそらく何もしないよりも良い方法は、コンテンツ全体をダンプするのではなく、レスポンスから必要な情報を抽出することです – mangokun

答えて

14

あなたはこれを試すことができます:ドキュメントが言う

相続人は何をする

protected void btnChange_Click(object sender, EventArgs e) 
{ 
    myIframe.Attributes["src"] = "pathtofilewith.html" 
} 

をまたは多分これはあまりにも動作します:あなたはインラインフレームを変更することはできません

protected void btnChange_Click(object sender, EventArgs e) 
{ 
    myIframe.Attributes["innerHTML"] = "htmlgoeshere" 
} 
0

innerHTMLプロパティ。 innerHTMLプロパティはまったくありません。 ifStartupScriptを登録し、document.writeを使用してiframeの内容を変更します。これはウィンドウなので変更してください。

ところで、私はHTMLタグがこれのために良い場所だと思います。あなたが何をする必要があるか

0
<asp:Button ID="btnChange" runat="server" Text="Change iframe content" onclick="btnChange_Click" /> 
<br /> 
<asp:Literal id="myIframe" runat="server" /> 

in the code behind: 

protected void btnChange_Click(object sender, EventArgs e){ 
    myIframe.Text = "<h1>Contents Changed</h1>"; 
} 
0

は空で、それが応答して、自身の身体の荷重それを取得別々のaspxページを作成し、他の言葉で自分自身を置き換え、

mypage.aspxのようなものです:

<%@ Page contentType="text/html" %> 
//... using your namespace that contains the required functionality 
<% Response.Write(MyObject.CreateBody()) %> 

その後、

<iframe src="mypage.aspx" ... /> 

単に、IFRAを入れて...ウルのiframe内でそのページを配置私はクライアント側のウィンドウです、あなたはサーバー側からオブジェクトとしてその本体を参照することはできません、まだロードされていません!

OR ... htmlファイルを開き、応答をダンプして保存して閉じることができます。そのファイルは常にiframeによって参照されます。テキストストリームオブジェクト、ファイルシステムオブジェクトなどを使用してください。

PS。私はそれを試していない

1

iFrameのinnerHTML属性はありません。しかし、HTML 5.0以来、新しいsrcdoc属性があります。http://www.w3schools.com/tags/tag_iframe.asp

値:HTML_code

説明:

protected void btnChange_Click(object sender, EventArgs e) 
{ 
    myIframe.Attributes["srcdoc"] = "<h1>Contents Changed</h1>"; 
} 
:<のiframeあなたはこのように使用することができます>

に表示するページのHTMLコンテンツを指定します。

関連する問題