Why the following code generates 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();
You are operating across two windows.
printwindow.document.write
document.getElementById
If you want to get the element you created in the popup then you have to call it's gEBI method.
printwindow.document.write
printwindow.document.getElementById
Prepend printwindow.
to each instance of document.getElementById
:
printwindow.document.getElementById('docPrint').focus();
printwindow.document.getElementById('docPrint').contentWindow.print();
You need to prefix your calls to document.getElementById with 'printwindow':
printwindow.document.getElementById('docPrint').focus();
printwindow.document.getElementById('docPrint').contentWindow.print();
You might also want to keep a reference to the element in a variable, to avoid the boilerplate
var el = printwindow.document.getElementById('docPrint');
el.focus();
el.contentWindow.print();
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.