2011-02-10 3 views
1

я называю яваскрипт функцию кнопки в ASPX странице как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.5 и ajaxcontrolltoolkit 3.5.40412.2

При нажатии на кнопку ошибка показывает, как "ошибка выполнения Microsoft JScript: Object требуется".

ответ

1

Я думаю, что либо

  1. PrintPayslipPart не является действительным ID, и поэтому getElementById возвращает нуль.
  2. PrintPaySlip не является глобальной переменной, и среда не позволяет ему быть неявно определено, что может быть решена, объявив его местного применения var

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

Второй кажется более вероятно.

НТН

+0

Это правда, что было бы лучше объявить 'PrintPaySlip' с помощью' var', но это не остановит работу кода. –

+0

@Tim; Я знаю, что это не должно, но у меня был IE, который укусил меня (работал безупречно во всех других браузерах), я не уверен, в каких обстоятельствах это происходит, но теперь, когда вы упомянули об этом, я думаю, что сообщение об ошибке было другим. – falstro

+1

Вы на самом деле правы, я забыл: IE автоматически добавляет свойства глобальному объекту (фактически глобальные переменные), соответствующие идентификаторам элементов, и вам не нравится, что вы пытаетесь присвоить эти свойства, поэтому, если у вас есть элемент в документ, идентификатор которого был «PrintPayslipPart», тогда IE будет вызывать ошибку, если вы не использовали 'var'. –

0

первая вещь, которую я предложу вас есть Firefox с установленной консоли ошибок, а затем проверить сайт. По крайней мере, это может помочь вам найти то, что именно ошибка вместо «ошибка выполнения Microsoft JScript»

Поверь мне, но Firefox + FireBug + Error Console сделать жизнь намного лучше для Web (JS) для разработчиков.

+0

За исключением поиска ошибок IE, которые (к сожалению), как правило, многочисленны. – falstro

Смежные вопросы