9

コードビハインドから、実行時にIframeのHTMLを設定しようとしています。

私のaspxページには次のものがあります。

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

<br />

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

背後のコードで:

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

これを実行すると....投稿されますが、myIframeの内容はまったく変更されません...何が間違っていますか?


チェックアウトプロセスに3Dセキュアを実装しているので、これを行う必要があります。基本的に:

1)顧客がクレジットカードの詳細を入力します2)フォームが送信され、3Dセキュアが必要かどうかを支払いゲートウェイに確認します。その場合、銀行の安全な場所に情報を入力するための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>
4

5 に答える 5

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"
}
于 2009-08-14T13:43:59.373 に答える
2

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

値:HTML_code

説明:<iframe>に表示するページのHTMLコンテンツを指定します

あなたはこのように使うことができます:

protected void btnChange_Click(object sender, EventArgs e)
{
    myIframe.Attributes["srcdoc"] = "<h1>Contents Changed</h1>";
}
于 2014-06-03T18:14:45.457 に答える
0

iframeのinnerHTMLプロパティを変更することはできません。innerHTMLプロパティはまったくありません。iframeはウィンドウであるため、RegisterStartupScriptを試して、document.writeを使用してiframeのコンテンツを変更してください。

ちなみに、これにはHTMLタグの方がいいと思います。

于 2009-08-14T13:59:40.353 に答える
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>";
}
于 2009-08-14T14:08:07.427 に答える
0

あなたがする必要があるのは、空であり、応答を取得してそれをそれ自身の本体にロードする、言い換えれば、それ自体を置き換える、別のaspxページを作成することです。

mypage.aspx:

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

次に、そのページをuriframe内に配置します...

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

簡単に言えば、iframeはクライアント側のウィンドウであり、サーバー側からオブジェクトとしてその本体を参照することはできません。まだロードされていません。

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

PS。私はそれのどれも試していません

于 2009-10-28T02:47:29.240 に答える