2010-04-03 109 views
0

以下div的內容是動態派生的:即用某個按鈕動態添加表格到該div。div的打印內容

我的問題是如何打印這個div(window.print),而不是其他的東西的內容在頁面

<div id="newdiv" name="newdiv"></div> 

感謝。

+0

@Hulk,正如我在其他問題中所說的,請留下反饋意見,讓我們在這裏不滿意的答案而不是打開一個新的答案。 – 2010-04-07 13:51:48

+0

佩卡沒有冒犯,我將它標記爲已回答。 – Hulk 2010-04-08 04:47:02

+0

沒有采取任何行動,如果答案沒有幫助你,你可以自由地取消它。如果解決方案無法解決問題,只需提供反饋意見,通常您會獲得新選項。 – 2010-04-08 08:25:13

回答

7

兩個想法:

  • 介紹的打印樣式表

    <link rel="stylesheet" href="print.css" type="text/css" media="print" /> 
    

    ,會給每一個元素display: none除了newdiv

    * { display: none } /* This should hide all elements */ 
    div#newdiv { display: block } /* This should make newdiv visible again */ 
    

    我現在不能測試此權利但我不明白爲什麼這不起作用。

  • div的內容複製到新創建的使用JavaScript的iframe元素中並打印出來。儘管如此,道路上有很多障礙物。我會嘗試先使用CSS。

+0

不能在jQuery中做這樣的事情 $('#newdiv')。val() 並使用window.print – Hulk 2010-04-03 19:51:43

+0

你可以遍歷jQuery中的所有元素,使它們全都不可見,除了newdiv,然後調用' window.print()'我想。與樣式表具有相同的效果,不同之處在於樣式表也適用於JS禁用。我並沒有真正看到這方面的優勢。據我所知,你不能將大塊的HTML發送到window.print()。 – 2010-04-03 19:53:28

+0

+1。樣式表可以「禁用」,並且在您需要時也可以啓用。 – 2010-04-03 19:54:12

4

聰明思維佩卡,但它不能正常工作完全是這樣,使用全球顯示器後:沒有,你將不得不重新顯示需要顯示,包括所有的父元素的每一個元素。最好的辦法是隱藏所有不應該打印的元素,好消息是你只需要隱藏父元素,並且其中的所有內容都將被隱藏。

有是不需要額外的樣式表,在現有工作表塊都可以使用(它必須放在最後一個表的末尾)的方式:

@media print{ 
    .noprint{ 
     display:none; 
    } 
} 

現在塊可以通過給它的容器提供noprint類來隱藏打印。

+0

@eBusiness如果文檔非常複雜,那麼您可以提供優秀的服務。 +1。 – 2010-04-07 11:44:31