0

レンダリング中iframesに、次のコードを使用します。

ifrm = document.createElement("IFRAME");
ifrm.style.width = "100%";
ifrm.style.height = 600+"px";
function makeFrame() {
document.body.appendChild(ifrm);
}

ただし、iframes関数を呼び出すたびに、これは既存のものの下に追加され続けますmakeFrame()。したがって、makeFrame()(たとえば 3 回)呼び出した場合、前の値iframesよりも 1 つ下の 3 つが返されます。これを防ぎ、最後のものに追加するのではなく、既存のものを置き換えるにはどうすればよいですか?

4

3 に答える 3

0

最も簡単な答え:

コードの変更をできるだけ少なくしたい場合で、ページ上に常に 1 つの iframe しかないことが確実な場合

function makeFrame() {
oldiframe = document.getElementsByTagName("IFRAME")[0] 
// getElementsByTagName will return an array (a list). 
// Adding [0] will return the first (and, under our assumptions, only) element
ifrm = document.createElement("IFRAME");
ifrm.style.width = "100%";
ifrm.style.height = 600+"px";
document.body.replaceChild(ifrm, oldiframe);
}
于 2013-01-11T15:02:09.133 に答える
0

こんにちは @mikemxm やっと問題を解決できました。最終的なコードは次のようになります。

oldiframe = document.getElementsByTagName("IFRAME")[0]; 
ifrm = document.createElement("IFRAME");
ifrm.style.width = "100%";
ifrm.style.height = 600+"px";
function makeFrame() {
   if(oldiframe == null)
     document.body.appendChild(ifrm);
   else
     document.body.replaceChild(ifrm, oldiframe);
}

そして、iframe に対する警告をありがとう。外部の Web サイトからコンテンツをレンダリングするためのより良い方法/技術を知っていますか? 著作権の問題が発生する可能性はありますか? ありがとう。

于 2013-01-12T05:24:07.193 に答える
0

div を作成します。div id が iframecontainer であるとすると、コードは次のようになります。

<div id="iframecontainer">
<!-- Iframe goes here -->

</div>

iframe を追加する前に、javascript で getElementById を単純に設定し、innerHTML を "" に設定します。

于 2013-01-11T14:54:16.430 に答える