2011-02-10 75 views
1

我在aspx頁面調用javascript函數的按鈕一樣JavaScript錯誤:所需的對象

OnClientClick= "printText(document.getElementById('PrintPayslipPart').innerHTML)" 

和功能;

function printText(elem) 
    { 
     PrintPaySlip = window.open('RP_PrintPaySlip.html','PrintPaySlip','toolbar=no,menubar=yes,width=1000, Height = 700, resizable=yes,scrollbar=Yes'); 
     PrintPaySlip.document.open(); 
     PrintPaySlip.document.write("<html><head>"); 
     PrintPaySlip.document.write("</head><body onload='print()'>"); 
     PrintPaySlip.document.write(elem); 
     PrintPaySlip.document.write("</body></html>"); 
     PrintPaySlip.document.close(); 
    } 

我使用.net 3.5ajaxcontrolltoolkit 3.5.40412.2

當按鈕點擊錯誤顯示爲 「Microsoft JScript運行錯誤:所需的對象」。

回答

1

我的猜測是,要麼

  1. PrintPayslipPart不是有效的ID,所以getElementById返回null。
  2. PrintPaySlip不是一個全局變量,和你的環境不允許它成爲 隱含定義的,它可以通過聲明它來解決當地使用var

    var PrintPaySlip = window.open(...); 
    

第二個似乎更有可能。

HTH

+0

確實最好使用`var`聲明`PrintPaySlip`,但它不會停止代碼的工作。 – 2011-02-10 09:27:05

+0

@Tim;我知道它不應該,但我有IE瀏覽器咬我(在所有其他瀏覽器完美地工作),我不知道在什麼情況下發生這種情況,但現在你提到它,我認爲錯誤信息是不同的。 – falstro 2011-02-10 11:31:36

0

第一件事,我會建議你的是有Firefox的安裝錯誤控制檯,然後測試該網站。至少它可以幫助你準確地找到錯誤,而不是「Microsoft JScript運行錯誤」

信任我,但Firefox + FireBug + Error Console讓生活多的網絡更好(JS)開發的。