Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - anterior

Страницы: [1]
1
JavaScript & JScript / IE+XML+CGI+JavaScript. Как?
« : 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". В этом и заключается проблема

2
JavaScript & JScript / XmlHttpRequest и НЕ UTF-8. Как?
« : 05 Июля 2007, 17:22:41 »
Здравствуйте, очень нужна помощь. Дело такое, есть файлы:

1)index.html:



 
 


      type="button"
    value="Click me!"
    onclick="javascript:doHTTPQuery(\'POST\', true, \'http://127.0.0.1/cgi-bin/test.cgi\', function() {}, \'name=Тест\')"
  />



2)test.cgi:

#!/usr/bin/perl -w
use CGI qw(:standart);
my $query = CGI->new();
my $text = $query->param(\'name\');
print $query->header(-type => \'text/html\', -charset => \'KOI8-R\');
open(F, ">TEST.TXT");
print F $text;
close(F);


Все файлы написаны в кодировке KOI8-R. Собственно идея такая что при нажатии на кнопку должен записатся файл TEST.TXT и он должен быть тоже в кодировке KOI8-R. Покрайней-мере так работает при обычном выполнении запроса без XmlHttpRequest. А вот в XmlHttpRequest все как раз иначе, файл сохраняется почему-то в кодировке UTF-8. Как это можно исправить?

3
JavaScript & JScript / Upload при помощи iframe.
« : 01 Июля 2007, 19:26:59 »
Есть такой хтмль типа:


 
 
   
     
       
     
   
 
Прикрепленные файлы
         
       



И код на JavaScript:

function upload(form) {
  function addEvent(obj, evType, fn){
    if (obj.addEventListener) {
        obj.addEventListener(evType, fn, true);
    }
    if (obj.attachEvent) {
        obj.attachEvent(\'on\'+evType, fn);
    }
  }
  function removeEvent( obj, type, fn ) {
    if (obj.detachEvent) {
      obj.detachEvent(\'on\'+type, fn);
    }
    else {
      obj.removeEventListener(type, fn, false);
    }
  }
  function onfinish() {
    alert(window.frames[\'temp984\'].document); // вот это со 2й попытки возвращает null
    removeEvent(document.getElementById(\'temp984\'), \'load\', onfinish);
    cross = \'javascript:window.parent.onUploadSuccess(); void(0);\';
    document.getElementById(\'temp984\').src = cross;
    setTimeout(function() {
        alert(\'time!\');
        document.getElementById(\'temp984\').parentNode.removeChild(document.getElementById(\'temp984\'));
      }, 250
    );
  }

  iframe = document.createElement(\'iframe\');
  iframe.id = \'temp984\';
  iframe.name = \'temp984\';
  iframe.style.display = \'none\';
  form.parentNode.appendChild(iframe);
  window.frames[\'temp984\'].name = \'temp984\';
  form.target = \'temp984\';
  addEvent(iframe, \'load\', onfinish);
  form.submit();
}

CGI скрипт после того как загрузил файл, возвращает его размер, content-type, и т.д. или сообщение об ошибке. Вся эта информация будет лежать в window.frames[\'temp984\'].document которая описана первой строкой функции onfinish. И это работает но только для первой загрузки файла, все остальные попытки оканчиваются неудачно т.к. window.frames[\'temp984\'].document почему-то возвращает null в той самой первой строке ф-и onfinish. Почему так я не понимаю. А если например вместо удаления фрейма после загрузки файла переименовать его(iframe.id = \'\'; iframe.name = \'\') то повторные загрузки файла оканчиваются успешно но функция onfinish вызывается почему-то 2 раза и показывает информацию о последнем и предыдущем загруженном файле. Ошибок в CGI скрипте нет. Проверено! Браузер FF. Буду очень признателен если кто-нибудь скажет в чем моя ошибка.

4
Здравствуйте! Очень при очень хочеться это сделать. Нужно создать раскрывающиеся подменю. Пока сделано только одноуровневое меню. Гуглил, гуглил несколько раз ответа не нашел :( Дошел до этого:


 
 


 

   

     
       
         
           
           
         
       
     
   
 


Страницы: [1]


             

                   

  •                   Создать
                     
                   

  •              

           

             

  •                 Сообщение
                   

                       

    •                     Отправить
                       

    •                

                 

  •