У меня есть код, который нужно использовать в моей форме, чтобы при нажатии кнопки печати открывалось диалоговое окно печати, и я мог напечатать свою форму. Проблема в том, что я пытаюсь отформатировать печатную версию формы (я хочу, чтобы форма печаталась на одной странице), и у меня возникли проблемы. Есть ли способ изменить этот код, чтобы печатная версия отображалась в новом окне? Я надеюсь, что если я смогу увидеть печатную версию, я смогу изменить CSS. Я надеюсь это имеет смысл. Вот код, который я сейчас использую:
<!--BLOCK_ID_11--><script>window['printForm']=function(selector){function _cloneCanvas(newCanvas,oldCanvas){var context=newCanvas.getContext('2d');newCanvas.width=oldCanvas.width;newCanvas.height=oldCanvas.height;context.drawImage(oldCanvas,0,0);};function _getStyles(){var r='';$(document).find('link[type*="css"],style').each(function(){r+=this.outerHTML;});return r;};function _callPrint(w){if(w&&w["printMe"]) w["printMe"]();else setTimeout(function(){_callPrint(w);},50);};try{if(typeof jQuery!='undefined'){if(typeof selector!='undefined'){var $=jQuery,f=$(selector),c,e,h,t,w,d;if(f.length){c=f.clone();c.find('script').remove();c.find('input').each(function(){e=$(this);if(typeof e.prop('checked')!='undefined') e.attr('CHECKED',e.prop('checked'));e.attr('value',e.val());});c.find('SELECT').each(function(){e=$(this);t=f.find('[id="'+e.attr('id')+'"] option:selected').text();e.replaceWith(t);});c.find('TEXTAREA').each(function(){e=$(this);t=e.val();e.replaceWith(t);});h=c[0].outerHTML;w=$('#cff_iframe_for_printing');if(w.length==0){w=$('<iframe id="cff_iframe_for_printing" name="cff_iframe_for_printing" style="display:none;"></iframe>');w.appendTo('body');} d=w[0].contentWindow.document;d.write('<body>'+_getStyles()+h+'</body>');setTimeout(function(){d.close();$(d).find('canvas').each(function(i,e){_cloneCanvas(e,f.find('canvas:eq('+i+')')[0]);});var ua=window.navigator.userAgent,msie=ua.indexOf("MSIE ");if(-1<msie){w[0].contentWindow.document.execCommand('print',false,null);}else{w[0].contentWindow.print();}},1500);}else{throw"Form's selector is incorrect";}}else{throw'Requires the selector';}}else{throw'Requires the jQuery framework';}}catch(err){if(typeof console!='undefined') console.log(err);}};</script><!--END_BLOCK_ID_11-->
Я попытался изменить клик с printForm("#cp_calculatedfieldsf_pform_1");
до
window.open(); window.print();
Я могу открыть новое окно, но там ничего нет
Например, когда я печатаю свою форму, у меня есть данные для имени и фамилии. В форме он расположен таким образом, чтобы они находились в одной строке, но когда я его печатаю, они печатаются в виде списка (один над другим). На самом деле, вся форма печатается в виде одного длинного списка. Я хочу сохранить дизайн онлайн-формы для печатной формы.