2012-08-29 2 views
1

HTML 코드를 html 페이지에 삽입하고 싶습니다. HTML 임베디드 코드의 스타일이 전체 레이아웃을 방해하므로 iframe을 사용하려고합니다. 문제는 링크 할 .html 페이지가 없다는 것입니다. 왜냐하면이 HTML 코드가 데이터베이스에서 나오기 때문입니다. 같은 tryed :iframe 직접 html 코드를 사용하여, 소스 없음

<iframe>${htmlContent} </iframe> 

여기서 ${htmlContent} 간단한 html 콘텐츠가 포함되어 있습니다.

<html> 
<head> 
<title></title> 
</head> 
<body> 
</body> 
</html> 
+0

두 번째 pag e는 데이터베이스에서 HTML을 생성하고,'iframe'의'src'를 통해 링크를 생성합니까? – freefaller

+0

테트 (Thet)는 쉬운 방법이지만, 최선의 방법은 아닙니다. 나는 HTML 코드로 직접 뭔가를 선호한다. 감사합니다 –

+0

저장된 HTML **에 ''태그가 포함되어 있습니까? – freefaller

답변

1

이 대답은 당신이 당신의 저장 HTML에서 <html></html> 태그를 제거 할 수있어, 그리고 마크 업에 배치 할 때 HtmlEncode을 할 수 있다고 가정합니다.

스토어 사업부 같은으로 인코딩 된 HTML ...

<div id="htmlstore" style="display:none;">{html goes here}</div> 

그래서 뭔가처럼 보이는 ...

<div id="htmlstore" style="display:none;">&lt;body&gt;This is my text&lt;/body&gt;</div> 

그런 다음 다음 Javsacript을 것 "HtmlDecode"(사용 이 불행히도 할 기본 JavaScript 함수가 있습니다) 및 iframe을 넣으십시오.

<script type="text/javascript"> 
    window.onload = function(){ 
    var html = document.getElementById("htmlstore").innerHTML; 
    html = html.replace(/&lt;/g,"<").replace(/&gt;/g,">"); 
    var frameDoc = document.getElementById("newframe").contentWindow.document; 
    frameDoc.documentElement.innerHTML = html; 
    } 
</script> 
+0

감사합니다. 그것이 내가 필요한 것입니다. 하지만 두 가지 질문이 있습니다. 1. << 및>에 의해 >을 변경하면 일반 디스플레이 레이아웃이 방해받지 않는 것을 피할 수 있습니다. 2. 왜 태그를 제거해야합니까? 심지어 그들과 함께, 기능은 작동합니다. 감사합니다 –

+1

안녕하세요 @ 블랑카. 예, HTML의 인코딩은 메인 페이지에서 일어나는 일을 모두 멈 춥니 다. HTML의 내용을 보장 할 수 없다면 쉽게 엉망이 될 수 있기 때문입니다. ''을 제거한 이유는 iframe의 전체 구조를 새 HTML로 바꾸는 방법을 찾지 못했기 때문입니다. 내가 한 일은 ** iframe의 HTML ** 내에서 구조를 바꾸는 것입니다. 그렇지 않으면 브라우저가 ' ...'이라는 문구를 불평 할 수 있습니다. – freefaller

+1

내가 블랑카에 대해 생각한 또 다른 것, 아마도 HTML로 시작하기 위해 실제 'HtmlEncode'를 실행하고 싶지 않을 것입니다. 그렇지 않으면 iframe에서 & amp; '. 따라서 '<' and '>'만 변환하면됩니다. 어느 쪽이든 또는 jQuery가 분명히 할 수있는 적절한 HtmlDecoding을 수행하는 자바 스크립트 라이브러리를 사용하십시오 – freefaller

관련 문제