为什么TypeError:document.getElementById()为null

时间:2012-07-11 11:48:33

标签: javascript document getelementbyid

为什么以下代码会生成TypeError: document.getElementById("docPrint") is null

var printwindow = window.open('', '', 'fullScreen=no');
printwindow.document.write('<iframe id="docPrint" width="100%" height="100%" src="http://localhost:8080/hiring/docs/Keneth _1340800082258/Keneth _resume_1340800082258.pdf"></iframe>');
printwindow.self.focus();
document.getElementById('docPrint').focus();
document.getElementById('docPrint').contentWindow.print();

3 个答案:

答案 0 :(得分:3)

您正在两个窗口中操作。

printwindow.document.write
document.getElementById

如果你想获得你在弹出窗口中创建的元素,那么你必须调用它的gEBI方法。

printwindow.document.write
printwindow.document.getElementById

答案 1 :(得分:1)

printwindow.添加到document.getElementById的每个实例:

printwindow.document.getElementById('docPrint').focus();
printwindow.document.getElementById('docPrint').contentWindow.print();

答案 2 :(得分:1)

您需要使用'printwindow'为document.getElementById调用前缀:

printwindow.document.getElementById('docPrint').focus();
printwindow.document.getElementById('docPrint').contentWindow.print();

您可能还希望在变量中保留对元素的引用,以避免使用样板

var el = printwindow.document.getElementById('docPrint');
el.focus();
el.contentWindow.print();