簡體   English   中英

將div傳遞給jquery函數並獲取其innerhtml

[英]Passing div to jquery function and get its innerhtml

我有一個功能來打印div的內容。 讓我分享我的aspx標記。

<div>
<div id="printarea" runat="server">
</div>
<asp:Button ID="btnPrint" runat="server" Text="Print Div" OnClick="btnPrint_Click" />

在OnClick事件中,將innerhtml設置為div打印區域。 代碼是:

 protected void btnPrint_Click(object sender, EventArgs e)
    {

        string divText = GenerateInPatientBill();// "content you want to print";
        printarea.InnerHtml = divText;

        ScriptManager.RegisterStartupScript(this, Page.GetType(), "script", "PrintDiv(" + printarea.ClientID + ");", true);
    }

我需要將printarea div的clientid傳遞給javascript函數並將其打印出來。 使用的javascript函數是

 function PrintDiv(printarea1) {
    alert($("#" + printarea1 + ""));
    var printContent = $("#" + printarea1 + "").html();
    alert(printContent);
    var popupWin = window.open('', '_blank', 'width=300,height=400,location=no,left=200px');
    popupWin.document.open();
    popupWin.document.write(printContent);
    popupWin.document.close();
    popupWin.focus();
    popupWin.print();
    popupWin.close();
}

在第2行收到javascript語法錯誤。請對此提供幫助。

請嘗試以下代碼。

function printDiv(DivIdToPrint) 
{ 
  var divToPrint= document.getElementById('DivIdToPrint'); 
  var newWin=window.open('','Print-Window','width=100,height=100'); 
  newWin.document.open(); 
  newWin.document.write('<html><body onload="window.print()">'+divToPrint.innerHTML+'</body></html>'); 
  newWin.document.close(); 
  setTimeout(function(){newWin.close();},10); 
}

該JavaScript將打開一個包含div內容的新窗口,進行打印,然后關閉該窗口。 最后一行,這是在此處設置超時的必須條件,否則在IE窗口將在打印發生之前關閉。

否則您可以使用jQuery插件

printContent在新打開的窗口中將不可用,因此您將收到此錯誤。要解決此問題,您只需將div內容或標記傳遞給新打開的窗口,然后進行打印

暫無
暫無

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

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