Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: anterior от 11 Июля 2007, 10:46:01

Название: IE+XML+CGI+JavaScript. Как?
Отправлено: anterior от 11 Июля 2007, 10:46:01
Люди, у меня проблема. Я уже целый день на нее потратил, и уже начал рвать клочья на голове ;) Вот блин везде это работает во всех браузерах, а в ИЕ не работает. Вот хоть тресни. Короче рассказываю по порядку:
1) Есть CGI скрипт вот такой:

use CGI qw/:standard/;
print header(-type => \'text/xml\', -charset => \'UTF-8\'),
  \'\',
  \'mydata\';

2) Есть JavaScript, вот такой:

//Костыли для IE:
    function addEvent(obj, evType, fn){
      if (obj.addEventListener) {
          obj.addEventListener(evType, fn, true);
      }
      if (obj.attachEvent) {
          obj.attachEvent(evType, fn);
      }
    }
    function removeEvent( obj, type, fn ) {
      if (obj.detachEvent) {
        obj.detachEvent(type, fn);
      }
      else {
        obj.removeEventListener(type, fn, false);
      }
    }
//выполняет запрос на загрузку файла
    function upload(form, onload_func) {
      //эта функция вызовется после выпонения запроса
      addEvent(document.getElementById(\'myframe\'), \'onload\', onload_func); //специально для IE
      document.getElementById(\'myframe\').onload = onload_func; //А вот это едят все остальные
      //выполняем запрос
      form.submit();
    }
    function myOnLoadFunc() {
      var frame = document.getElementById(\'myframe\');
      removeEvent(frame, \'onload\', myOnLoadFunc); //специально для IE
alert(frame.contentWindow.document.getElementsByTagName(\'mytag\').length);
    }

3) А вот ХТМЛ:








Ну и вот после того как все это сработает появляется сообщение. В ИЕ оно равно "0". В этом и заключается проблема