За последние 24 часа нас посетили 16408 программистов и 1677 роботов. Сейчас ищут 852 программиста ...

Window.OnLoad проблема

Тема в разделе "JavaScript и AJAX", создана пользователем brand34t5q2, 22 июл 2011.

  1. brand34t5q2

    brand34t5q2 Активный пользователь

    С нами с:
    22 июл 2011
    Сообщения:
    5
    Симпатии:
    0
    в странице имеется скрипт
    [js]<SCRIPT LANGUAGE="Javascript1.2">
    window.onload = CheckDigitalSignature('`data.contents`');

    function CheckDigitalSignature(Signature)
    {
    var CAPICOM_E_CANCELLED = -2138568446;
    var CAPICOM_VERIFY_SIGNATURE_ONLY = 0;
    var CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME = 0;

    try
    {
    var SignatureData = new ActiveXObject("CAPICOM.SignedData");

    SignatureData.Verify(Signature, false, CAPICOM_VERIFY_SIGNATURE_ONLY);

    var Certificates = SignatureData.Certificates(1);
    var CertificateOwner = Certificates.GetInfo(CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME);
    alert(CertificateOwner);
    document.getElementById('Outtext').value = CertificateOwner;
    }
    catch (e)
    {
    if (e.number != CAPICOM_E_CANCELLED)
    {
    alert("An error occurred when attempting to verify signature, the errot was: " + e.description);
    }
    }
    </SCRIPT>[/js]


    После загрузки страницы нужно чтобы в текстовом поле 'Outtext' отображались данные, но при загрузке скрипт выдает ошибку:
    document.getElementById(...) - есть null или не является объектом, я так понимаю это потому что window.onload определяется не в теге <BODY> но дело в том что мне как раз необходимо определять onload в теге <script>, тогда как достучаться до текстового поля Outtext при таком раскладе?
     
  2. Easy

    Easy Активный пользователь

    С нами с:
    15 июл 2011
    Сообщения:
    286
    Симпатии:
    0
    такой строкой вы просто видимо присваиваете window.onload не функцию, а результат её выполнения, так как вы скобки написали CheckDigitalSignature('`data.contents`'), а следовательно функция тут будет вызвана, попробуйте тогда так

    [js]
    window.onload = function(e) { CheckDigitalSignature('`data.contents`') }
    [/js]
     
  3. brand34t5q2

    brand34t5q2 Активный пользователь

    С нами с:
    22 июл 2011
    Сообщения:
    5
    Симпатии:
    0
    Easy, спасибо, заработало!