鍍金池/ 問(wèn)答/網(wǎng)絡(luò)安全  HTML/ vue element 如何打印彈窗里的內(nèi)容?

vue element 如何打印彈窗里的內(nèi)容?

用vue-element里的dialog組件,在彈窗內(nèi)顯示一個(gè)表單,并用一個(gè)打印按鈕,打印該表單。
打印用了window.print()這個(gè)方法。
因?yàn)橹淮蛴№?yè)面中彈窗內(nèi)的部分,所以將id為dialogContent的div替換了原body的innerHTML,打印后再替換為原本的body,代碼如下:

var oldHtml = document.body.innerHTML;
document.body.innerHTML = document.getElementById("dialogContent").innerHTML;
window.print();
document.body.innerHTML = oldHtml;

網(wǎng)上的這個(gè)方法,遇到兩個(gè)問(wèn)題
1、第一次能打開(kāi)打印界面,但是關(guān)閉后,就無(wú)法第二次打開(kāi)了,而且頁(yè)面也無(wú)法進(jìn)行任何操作。
2、并且由于表單寬度問(wèn)題,表單的內(nèi)容,右邊的一半沒(méi)有被顯示在打印界面。

這是打印界面顯示的樣子,右側(cè)的一半被砍掉了、、

請(qǐng)問(wèn)該怎么解決??

回答
編輯回答
冷溫柔

innerHMTL會(huì)造成綁定丟失,可以window.open(''),寫(xiě)入document.write(dialogdome)打開(kāi)新頁(yè)面來(lái)打印,就是體驗(yàn)...,
或者嘗試將其它元素隱藏

2017年4月2日 09:13