Řešení: IE iframe print (nejen pro Fancybox)
Dnes jsem řešil problém, na který jsem za několik posledních let nenarazil - zřejmě proto, že jsem takové řešení prostě dosud nepoužil. Problém se týkal tisku z iframe samozřejmě v IE (vyvolaný jQuery pluginem Fancybox). Problém jsem si rychle nasimuloval v IE7 a IE8 - jiné verze jsem již netestoval a začal hned hledat řešení. Je jich několik, mě však fungoval jen ten, který následuje:
<script type="text/javascript">
function do_print()
{
try
{
document.execCommand('print', false, null);
}
catch(e)
{
window.print();
}
}
</script>
Jak vidíte, řešením je tedy javascript, který se nejprve pokusí zavolat funkci execCommand s parametrem print, která je dostupná pouze v jádru Internet Exploreru, pokud selže použije klasickou funkci pro javascriptové volání tisku stránky - window.print().
Celou funkci pak zavoláme při onload() v body:
<body onload="do_print()">
Pokud se náhodou ptáte, kde jsem na problém narazil, tak při tisku faktur a objednávek v e-shopu, který otevíráme právě do iframe okna pomocí Fancyboxu.
Pokud se vám líbil tento článek můžete Profi magazín odebírat pomocí RSS.
Možné související články:
TinyMCE/CKEditor Image a File Manager
Tvorba eshopu
Pronájem eshopu

