문제

런타임에 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에 대한 게시물 요청을 만듭니다. 이 게시물 요청에서 반환 된 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>
도움이 되었습니까?

해결책

당신은 이것을 시도 할 수 있습니다 :

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"
}

다른 팁

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>";
}

iframe innerhtml 속성을 변경할 수 없습니다. 내부 html 속성이 전혀 없습니다. registerStartUpscript를 시도하고 document.write를 사용하여 iframe의 내용을 변경하여 창이기 때문에 변경하십시오.

그건 그렇고, 나는 HTML 태그가 더 나은 곳이라고 생각합니다.

<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>";
}

당신이해야 할 일은 비어 있고 응답을 얻고 자신의 몸에로드하는 별도의 ASPX 페이지를 만드는 것입니다.

mypage.aspx :

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

그런 다음 해당 페이지를 ur iframe 안에 넣으십시오 ...

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

간단히 말해, iframe은 클라이언트 측 창입니다. 서버 측에서 객체로 본문을 참조 할 수 없으며 아직로드되지 않았습니다!

또는 ... HTML 파일을 열고 응답을 덤프 한 다음 저장하고 닫을 수 있습니다 ... 해당 파일은 항상 iframe에 의해 참조됩니다. 텍스트 스트림 객체 또는 FileSystemObject 등을 사용하십시오 ...

추신. 나는 그것을 시도하지 않았다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top