动态创建的 iFrame 在从 JQuery 加载的页面调用时为 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 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);
相关文章:
- 从JavaScript调用JAX-WSWeb服务时参数为Null
- 为什么我发布的数据在这个AJAX调用的Controller目标中为null
- 背景:'userId'在SignUp API调用后为null
- 在映射空闲时调用maps.getBounds()为null
- 未捕获的类型错误:无法调用方法'shift'Chrome中的Facebook JS库为null
- 谷歌脚本在第二次调用Gmail后返回null
- moment:Array.prototype.some在null或未定义时被调用
- 无法调用方法'appendChild'为null
- Ajax调用后控制器中的参数为Null
- 为什么我的ajax调用返回null
- 即使使用jQuery DOM就绪事件,也无法调用null的方法addEventListener()
- 为什么我总是得到“无法调用 null 的方法'addEventListener'”
- 解析云代码:“在关系上调用 .query() 时,”无法调用 null 的方法'_toPointer'”
- CKEditor 未捕获的类型错误:无法在具有多个编辑器的 EmberJS 单页应用程序中调用 null 的“不可选择”
- 未捕获的类型错误: 无法调用 null 的方法“替换”
- 滚动侧边栏抛出 Javascript 错误“无法调用 null 的方法'偏移量'
- 无法调用 null 的方法“select2”
- 用于清除多个特定范围的脚本 - 无法调用 Null 的 getSheetByName 方法
- Mootools:调用null的方法
- scriptexception: TypeError:不能调用null的appendChild方法