2011-02-10 8 views
1

は私がJavaScriptエラー:オブジェクトが

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

と関数のようにaspxページにボタンにJavaScript関数を呼び出しています必要です。ボタンをクリックすると、私は.net 3.5ajaxcontrolltoolkit 3.5.40412.2

を使用しています

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(); 
    } 

はエラーが ":必要なオブジェクトのMicrosoft JScriptのランタイムエラー" と表示されます。

答えて

1

私の推測では、どちらか

  1. PrintPayslipPartが有効なIDではありませんし、そうgetElementByIdリターンヌルということです。
  2. PrintPaySlipがグローバル変数ではなく、ご使用の環境が地元秒1は、より多くのようだvar

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

を使用して、それを宣言することによって解決することができた、それは暗黙的に定義された にすることはできません。おそらく。私はあなたにお勧めします

HTH

+0

'PrintPaySlip'を' var'を使って宣言するほうが良いでしょうが、コードが動作しなくなることはありません。 –

+0

@Tim;私はそれはすべきではないことは知っていますが、IEはこれを(他のすべてのブラウザで完璧に動作しています)私に噛ませてしまったのですが、どのような状況で起こったのか分かりませんが、今言及しました。 – falstro

+1

実際には、忘れてしまったケースがあります。IEは、要素IDに対応するグローバルオブジェクト(事実上グローバル変数)にプロパティを自動的に追加します。これらのプロパティに割り当てようとは思わないので、 idが "PrintPayslipPart"のドキュメントで、 'var'を使用しなかった場合、IEはエラーをスローします。 @Tim; –

0

最初のものは、エラーコンソールとFirefoxをインストールしてから、サイトをテストしています。少なくとも、それはあなたが正確にエラーが代わりの「Microsoft JScriptのランタイムエラー」であるか

信託私を見つけるのを助けることができるが、Firefox + FireBug + Error Consoleは、Web用の人生ははるかに良い(JS)現像液を作ります。

+0

IEのバグを追跡する以外は(残念ながら)通常は多数あります。 – falstro

関連する問題