У меня есть приложение .Net, которое динамически создает небольшую HTML-страницу и открывает ее в новом окне с помощью метода javascript document.open. Все с этой функциональностью работает нормально.
Теперь я хочу добавить кнопку на страницу HTML, которая печатает страницу. Я пытался использовать следующий код безрезультатно:
<a href='print.html' onClick='window.print();return false;'>
<img src='images/printer.png' height='32px' width='32px'></a>
При нажатии кнопки во всплывающем окне ничего не происходит. Но когда исходный код этой страницы сохранен и загружен в браузер как отдельная страница, кнопка печати работает отлично. Таким образом, может показаться, что проблема вызвана тем, что код находится во всплывающем окне. [Проблема теперь заключается в том, что код, записанный во всплывающее окно после его открытия.] Кто-нибудь знает способ решить эту проблему или какие-либо альтернативы?
EDIT:
Другой метод, который я пробовал с теми же результатами:
<input type='button' onclick='window.print()' value='Print' />
и
<a href='javascript:window.print()'>
<img src='images/printer.png' height='32px' width='32px'></a>
ИЗМЕНИТЬ СНОВА:
Приведенный выше код работает в Firefox, но не в IE7. Есть идеи об обходе IE?
РЕДАКТИРОВАТЬ ВНОВЬ СНОВА:
Вот тестовый пример с кодом, который npup опубликован ниже. Вместо кода для всплывающего окна, расположенного в отдельном HTML-файле, я открываю пустой URL-адрес, а затем записываю в него код. Похоже, именно этот шаг является причиной проблемы.
<html>
<head>
<title>main</title>
</head>
<body>
<h1>
Pop & print</h1>
<button onclick="pop();">
Pop</button>
<script type="text/javascript">
var POP;
function pop() {
var newWin = window.open('', 'thePopup', 'width=350,height=350');
newWin.document.write("<html><head><title>popup</title></head><body><h1>Pop</h1>" +
"<p>Print me</p><a href='print.html' onclick='window.print();return false;'>" +
"<img src='images/printer.png' height='32px' width='32px'></a></body></html>");
}
</script>
</body>
</html>