获取iframe内部元素为空?

父级:

<iframe id="frame" src="../html/navBar.html" scrolling="no" frameborder="0" sandbox="allow-same-origin allow-scripts"></iframe>

script:

var s = "欢迎你,";
var welcomeString = s.concat(username);
document.getElementById("frame").contentWindow.document.getElementById("welcome").innerHTML = welcomeString;

报错:

Uncaught TypeError: Cannot set property 'innerHTML' of null

打印出来的ocument.getElementById("frame").contentWindow.document.getElementById("welcome")是空的。。。id我比对过,是正确的。应该不是同域的问题吧?

阅读 11.1k
3 个回答

是不是iframe还没加载完?

var iframe = document.getElementById("frame");
iframe.onload = function(){
     var dom = this.contentWindow.document.getElementById("welcome");
     dom.innerHTML = 'hello'
}; 

../html/navBar.html 中有id='welcome'的元素吗

welcomeString或者usename的问题吧,你把这两个检查一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题