簡體   English   中英

使用點擊功能后刷新同一頁面上的div

[英]Refresh a div on the same page after using click function

我正在使用Java腳本打印功能,該功能可以在單擊時打印頁面的預定義div。 功能如下:

<head>
<script type="text/javascript">
function printDiv(any printable div) {      
var printContents = document.getElementById(any printable div).innerHTML;      
var originalContents = document.body.innerHTML;       
document.body.innerHTML = printContents;       
window.print();       
document.body.innerHTML = originalContents; 
} 
</script>
</head>

打印機表單輸入方法和可打印div如下:

<body>
<input type="button" class="button" onclick="printDiv('any printable div')" name="print" value="print" />
<div id = "any printable div"> On button click contents here are printed </div>
</body>

我還在基於該功能執行任務的同一頁面上使用j查詢文本選取框/滾動器

 $(document).ready(function(){

所有獨立工作正常。 問題是單擊“打印”按鈕時,文本字幕/滾動條會停止滾動文本。 在刷新頁面之前,滾動器無法滾動文本。 所以我正在使用html meta刷新,但這對訪問者而言可能是個煩人的經歷。 我也不想在iframe中使用滾動條。

這次我已經嘗試了一些基於j查詢和Java腳本的解決方案。 腳本將div刷新(只是淡入和淡出整個文本塊)到div,滾動條處於靜默狀態,但實際上無法保持文本滾動。

是否有任何基於j-query或java腳本的良好解決方案可根據我在給定的時間段內上述情況靜默刷新滾動條div?

變量名稱中不能包含空格。 function printDiv(any printable div)是語法錯誤。

請嘗試:

function printDiv(elId) {      
    var printContents = document.getElementById(elId).innerHTML;      
    var originalContents = document.body.innerHTML;       
    document.body.innerHTML = printContents;       
    window.print();       
    document.body.innerHTML = originalContents; 
}

根據您所說的,我認為這里的意圖是僅打印特定的div,而不是整個頁面。 如果是這種情況,那么您實際上將在極端情況下執行此功能。

如果您只是想打印頁面的漂亮版本(一個沒有菜單等),請查看在打印或打印預覽時如何使用不同的CSS? 該問題將顯示如何使用一組不同的CSS進行打印,因此您可以設置display:none; 到您不想在打印時顯示的任何內容。

如果只想打印一個div,則可以看一下jQuery print element plugin 這是一個簡單的js文件,您可以將其鏈接到html中,然后調用

$([selector]).printElement();

僅打印該元素。 例如,您可以這樣重寫方法:

function printDiv(anyPrintableDiv) { 
    $('#' + anyPrintableDiv).printElement();
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM