Если бы вход идет вне бизнес-правила, реализованного бизнес-объектом, я сказал бы, что это - случай, не обработанный бизнес-объектом. Поэтому я выдал бы исключение. Даже при том, что метод set "обработал" бы 5 в Вашем примере, бизнес-объект не будет.
Для более сложных комбинаций входа, метод проверки требуется, хотя, или иначе Вы закончите с довольно сложными проверками, рассеянными о повсеместно.
, По-моему, необходимо будет решить, какой способ пойти в зависимости от сложности позволил/запретил вход.
Решение: в IE, iframe с видимость: скрыта; заставляет браузер печатать родителя. Изменение стилей на высоту: 0px; ширина: 0 пикселей; устраняет эту проблему.
Родительский документ:
<!doctype html>
<html>
<head>
<script>
function printIframe(iframe_id) {
if (navigator.appName.toUpperCase() == 'MICROSOFT INTERNET EXPLORER') {
document.frames[iframe_id].focus();
document.frames[iframe_id].print();
} else {
window.frames[iframe_id].focus();
window.frames[iframe_id].print();
}
}
</script>
</head>
<body>
<a href="javascript:printIframe('printMe');">Print the iframe.</a>
<iframe id="printMe" src="iframe.html"></iframe>
</body>
</html>
документ iframe:
<!doctype html>
<html>
<head></head>
<body>
<p>Print this.</p>
</body>
</html>
По приведенной ниже ссылке: http://www.eggheadcafe.com/PrintSearchContent.asp?LINKID=449
Попробуйте document.parentWindow.print (); вместо self.print () ...