2014-11-04 75 views
-1

在我的網頁我有一個圖像,我想用JavaScript打印它,但在JS圖像的ID始終爲空。請告訴我該怎麼做..圖片返回值「空」使用JS

<div class="reportFieldsDiv" runat="server" clientidmode="Static"> 
       <table style="width: 400px; margin: 10px 0px 0px 10px; border: 1px solid black"> 
        <tr> 
         <td> 
          <img src="~/Images/Layout/TestBadge.jpg" alt="ID Badge" id="mainImage"/> 
         </td> 
        </tr> 
       </table> 
       <div style="border: 0px solid black;padding:5px 0px 0px 280px"> 
        <asp:Button ID="btnPrint" runat="server" Text="Print" Width="140px" /> 

       </div> 
      </div> 


    <script type="text/javascript"> 

     window.onload = function() { 
      var image = document.getElementById('mainImage'); 
      printImage(image); 
     }; 


     function printImage(image) { 
      var printWindow = window.open('', 'Print Window', 'height=400,width=600'); 
      printWindow.document.write('<html><head><title>Print Window</title>'); 

      printWindow.document.write('<img id="mainImage" src=\'..\Images\Layout\TestBadge.jpg'); 
      printWindow.document.write(image.src); 
      printWindow.document.write('\' /></body></html>'); 
      printWindow.document.close(); 
      printWindow.print(); 
     } 


    </script> 
+0

我相信,如果你」 ASP.NET Web表單會分配一個不同的ID重新使用'runat = server'。使用瀏覽器的檢查員檢查圖像的實際ID。 – 2014-11-04 19:40:08

+0

這是一個快速解決方法,謝謝你,但現在我想在彈出窗口中打開我的圖像並激發打印事件,但由於某種原因,圖像不會出現,你可以幫我嗎? – 2014-11-04 19:43:11

+0

'Runat = Server'不適用於「傳統ASP」,除了Microsoft之外,它不會起作用。不要這樣做,如果你不是絕對需要它 - 並考慮嘗試另外的設計。如果你擺脫了「runat =服務器」,我懷疑它「可能正常工作」。恕我直言...... – FoggyDay 2014-11-04 19:44:21

回答

1

你沒有的ID添加到printWindow文件,如下圖所示:

printWindow.document.write('<img id="mainImage" src="..\Images\Layout\TestBadge.jpg"'); 
+0

出於某種原因,當彈出窗口出現時,我看不到圖像。我該如何解決它? – 2014-11-04 19:51:29

+0

我不知道爲什麼你的圖片沒有彈出。我沒有這個圖像,所以當我使用你的html時,它反正不適合我。我認爲有一件事是錯誤的,那就是你的字符串中的引號是錯誤的。我將編輯我的答案,使報價正確。 – 2014-11-04 19:55:07