我想用JavaScript打开一个html文件,并将一些数据写入其某些元素。我尝试了以下方法:
var info_window = window.open('info_print.html')
info_window.document.getElementById('new_info').innerHTML = data;
但是当我有#new_info
元素时出现此错误:
cannot set property 'innerHTML' of null
我该怎么办? 我检查了评论的问题,但不是我的问题。
答案 0 :(得分:1)
假设info_print.html
实际上包含您要查找的元素,那么您需要等待Window加载它,然后才能访问它。
这是使用onload
事件的简单解决方案:
var info_window = window.open('info_print.html');
info_window.addEventListener('load', function() {
info_window.document.getElementById('new_info').innerHTML = data;
});
答案 1 :(得分:1)
我创建了一个fiddle,它可以正常工作。 您能否检查您的html文件中是否包含new_info元素,或者您是否在控制台中遇到任何错误。
下面是我的小提琴代码。
var w = window.open('', "", "width=600, height=400, scrollbars=yes");
//assuming html as your info_print.html file which contains new_info element
var html = '<div id="new_info"></div>';
w.document.body.innerHTML = html;
w.document.getElementById("new_info").innerHTML="test content";