2012-07-25 62 views
0

這是我的previous question的擴展。我已經成功地將一個按鈕添加到我的php網頁,通過一次打印頁面中的所有圖形,它可以正常工作。我已經做了以下方式圖表在打印後在網頁上沒有響應

function printdiv(printpage) 
{ 
var headstr = '<html><head><title>Graphs</title></head>'+'<link rel="stylesheet" type="text/css" href="../css/template.css" />'+'<body><br/><br/><br/>'; 
var footstr = "</body>"; 
var newstr = document.all.item(printpage).innerHTML; 
var oldstr = document.body.innerHTML; 
document.body.innerHTML = headstr+newstr+footstr; 
window.print(); 
document.body.innerHTML = oldstr; 
return false; 
die(); 
} 


<input name="b_print" type="button" class="ipt" onClick="printdiv('graphs');" value="Graphs"> 

一個問題我現在已經是,當我點擊打印按鈕預覽彈出,一旦印刷完成後,在頁面中的所有highcharts變爲無效(比如說當我將光標移動到圖表上,並嘗試做一些它不響應,直到我刷新頁面)。任何線索什麼發生在這裏?

在此先感謝

回答

1

正如你已經改變的innerHTML,所有的事件監聽器(來處理與在這種情況下圖表交互使用)已經在同一時間刪除。

您可以嘗試生成一個彈出窗口來放置您的headstr+newstr+footstr,或使用更優雅的方法(如CSS媒體選擇器)來防止此問題。

+0

當我點擊一個按鈕時,我已經成功地只打印身體的元素。我已將此CSS鏈接到我的網頁上@ @ print print {body {font-size:10pt} div#two {display:none;}}'。但如果我想添加另一個僅打印頭部內容的按鈕,該怎麼辦? – Anil 2012-07-25 17:46:51

+0

@ven使用css打印時,您可以隱藏頁面中除您選擇的以外的所有內容。像'* {display:none; } .print {display:block; }' – xiaoyi 2012-07-25 18:07:45