IE9 no longer supports triggering the Print() VBScript by calling window.print() like IE7 and IE8 do, and thus window.print() will now always trigger the print dialog in IE9.
The fix is pretty simple. You just need to call Print() itself, instead of window.print() in the onclick event.
I've described the fix in more detail in an answer to another question, with a working code example sporting slightly updated HTML syntax (as much as possible while still tested as working code).
You can find that sample code here:
Bypass Printdialog in IE9