例を使用しましょう:
多くの DIV を含む Web ページがあるとします。ここで、1 つの DIV とその子 DIV を IFrame にレンダリングしたいと考えています。
以下のコードをレンダリングすると、ページが赤色の黒いボックスが含まれていることがわかります。私が必要としているのは、そのブラック ボックスを取得し、それが表示されている場合は Iframe に表示することです。以下のコードを使用すると、これらの要件の 80% を達成できます。唯一の問題は、IFrame をレンダリングするときに Web ページの背景色が表示されることです。そのため、IFrame は左余白のギャップを与えてから、赤い背景色で塗りつぶしているようです。どうしたらいいかわからない。
コードは次のとおりです。
<html>
<head>
<link rel="stylesheet" type="text/css" href="/psy/render.css" />
<script type="text/javascript" src="http://www.domain.com/psy/given.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="http://www.domain.com/psy/redaf.js"></script>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js?ver=1.3.2'></script>
/*
This one makes the javascript functionality work when in iframe and supposedly
was also suppose to render this page correctly. I got it from here:
http://css-tricks.com/snippets/jquery/fit-iframe-to-content/
*/
<script type='text/javascript'>
$(function(){
var iFrames = $('iframe');
function iResize() {
for (var i = 0, j = iFrames.length; i < j; i++) {
iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + 'px';}
}
if ($.browser.safari || $.browser.opera) {
iFrames.load(function(){
setTimeout(iResize, 0);
});
for (var i = 0, j = iFrames.length; i < j; i++) {
var iSource = iFrames[i].src;
iFrames[i].src = '';
iFrames[i].src = iSource;
}
} else {
iFrames.load(function() {
this.style.height = this.contentWindow.document.body.offsetHeight +
'px';
});
}
});
</script>
<title>Demo</title>
<meta charset="utf-8" />
</head>
<body onload="countdown(year,month,day,hour,minute)">
<div id="entire">
<div id="text1">Text Sample 1</div>
<div id="text2">Text Sample 2</div>
<div id="countdown_script"></div>
</div>
<div class="other_stuff">
<p class="titler">Title</p>
<p>text block.</p>
</div>
CSS:
body {
background-color: #990000;
}
#text1 {
color: #FFFFFF;
font-family: 'Helvetica Neue',Helvetica,Arial;
font-size: 20px;
margin-left: 20px;
margin-top: 30px;
padding-top: 40px;
}
.sampler {
color: #FFFFFF;
font-family: 'Helvetica Neue',Helvetica,Arial;
margin-left: 450px;
margin-top: 130px;
text-shadow: 2px 2px 2px #000000;
width: 500px;
}
p.titler {
color: #ffffff;
font-size: 30px;
margin-bottom: -10px;
}
ul {
list-style-type: none;
}
span {
color: #FFFFFF;
margin-left: 10px;
}
a {
text-decoration: none;
}
#entire {
background-color: #000000;
height: 350px;
margin-left: auto;
margin-right: auto;
width: 200px;
-moz-box-shadow: 0 2px 15px #990000;
-webkit-box-shadow: 0 2px 15px #990000;
}
#text2 {
color: #FFFFFF;
font-family: 'Helvetica Neue',Helvetica,Arial;
font-size: 20px;
letter-spacing: 5px;
margin-left: 20px;
margin-top: 15px;
}
.other_stuff {
color: #FFFFFF;
font-family: 'Helvetica Neue',Helvetica,Arial;
margin-left: 450px;
margin-top: 130px;
width: 500px;
}