代码之家  ›  专栏  ›  技术社区  ›  Nawras

在新打开的窗口中访问元素

  •  1
  • Nawras  · 技术社区  · 7 年前

    我想用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
    

    我该怎么办? 我检查了评论的问题,但这不是我的问题。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Marco Bonelli    7 年前

    假设你 info_print.html 实际上包含了您要查找的元素,然后您需要等待窗口加载它,然后才能访问它。

    下面是一个使用 onload 事件:

    var info_window = window.open('info_print.html');
    
    info_window.addEventListener('load', function() {
        info_window.document.getElementById('new_info').innerHTML = data;
    });
    
        2
  •  1
  •   Dhaval Pankhaniya    7 年前

    我创造了一个 fiddle 工作正常的地方。 请检查您的HTML文件是否包含新的\u 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";