繁体   English   中英

从JQuery加载的页面调用时,动态创建的iFrame为null

[英]Dynamically created iFrame is null when called from a page loaded by JQuery

我有一个使用常规javascript动态创建的iframe。 当通过常规方式从静态页面调用它时,它的效果很好,但是当从Jquery加载的页面调用它时,出现“ myIframe is null”错误。

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

我通过添加一个具有唯一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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM