对方法或属性访问的意外调用.在IE中使用appendChild()

"Unexpected call to method or property access." in IE with appendChild()

本文关键字:IE appendChild 调用 方法 属性 访问 意外      更新时间:2023-09-26
function fload(){
  f = document.createElement('iframe');
  f.setAttribute('id','iframe');
  f.setAttribute('src','http://www.wtsp.com/news/article/199268/8/man-falls-behind-on-payments-mortgage-company-has-home-trashed');
  f.setAttribute('frameborder','0');
  document.getElementById('content').appendChild(f);
}

我试图加载一个iframe后,其他一切加载。以上就是代码。在IE9中,控制台显示"SCRIPT65535:对方法或属性访问的意外调用。"指向带有appendChild()的行。

还有,是否可以异步加载iframe ?

正如评论者所说,可能id 内容的元素还不存在。此外,您不需要使用setAttribute,只需直接设置DOM属性:

function fload(){
  var f;
  var el = document.getElementById('content');
  if (el && el.appendChild) {
    f = document.createElement('iframe');
    f.id = 'iframe';
    f.src = 'http://...';
    f.frameborder = '0';
    el.appendChild(f);
  }
}

你不应该调用上面的函数,直到你确信元素存在,比如在加载事件之后或类似的。