0

通常のJavaScriptで作成された動的に作成されたiframeがあります。通常の方法で静的ページから呼び出された場合はうまく機能しますが、Jqueryによってロードされたページから呼び出された場合は、「myIframeisnull」エラーが発生します。

var link = 'http://www.blah.com'
var iframe='<iframe class="adframe" id="randomnumberhere" name="widget" src="#" width="300" height="250" marginheight="0" marginwidth="0" frameborder="no" scrolling="no"></iframe>';

document.write(iframe);
var myIframe=parent.document.getElementById("randomnumberhere");
myIframe.height=250;
myIframe.width=300;
myIframe.src=link;
myIframe.style.border="0px";
myIframe.style.padding="0px";
4

1 に答える 1

1

一意の ID を持つ div を追加し、iFrame をその div に追加して、これを解決しました。document.write はオブジェクトを作成できるようですが、その要素への追加は行われませんでした。作業コードは以下のとおりです。

html の div 用に動的に作成された乱数が既に存在します。

<div id="randomid"></div>

次に、その特定のIDでそのdivに追加する関数を作成しました

function makeFrame(){
var link = 'http://blah.com'
ifrm = document.createElement("IFRAME");
ifrm.setAttribute("src", link);
ifrm.style.width="300px";
ifrm.style.height="250px";
ifrm.style.border="0px";
ifrm.style.padding="0px";
document.getElementById('randomid').appendChild(ifrm);
}
makeFrame();

これは、div が既にページにある場合にのみ機能します。div を動的に作成し、iFrame をその div に追加する方法がわかりませんでした。Document.write は div を作成しましたが、その要素に iFrame を追加できませんでした。おそらく、遅延はそれを機能させるでしょうか?以下は私が試したものですが、うまくいきませんでした。

var iDiv='<div id="randomid"></div>';
document.write(iDiv);
于 2012-05-29T06:49:42.313 に答える