Проблема с меню на аяксе в ИЕ

Тема в разделе "Другие языки", создана пользователем askarbin, 16 окт 2009.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. askarbin

    askarbin

    Регистр.:
    31 мар 2009
    Сообщения:
    292
    Симпатии:
    36
    Суть проблемы такова: есть меню на аяксе, которое нормально работает во всех браузерах кроме ИЕ (причем всех версий). В ИЕ ошибка такая
    'document.getElementById(...).options' is null or non an object
    Кто-нибудь может подсказать в чем дело. В ШАПКЕ инклудится файл ajax.js и скрипт
    HTML:
        <script type="text/javascript" src="ajax.js"></script> 
    <script type="text/javascript"> 
     
    var ajax = new Array();
         
     window.onload = function()
                            {
     
     var country ='1';
     document.getElementById('region').options.length = 0; // Empty city select box
     if(country.length>0){
      var index = ajax.length;
      ajax[index] = new sack();
     
      ajax[index].requestFile = 'getCities.php?countryCode='+country+'&region='+22; // Specifying which file to get
      ajax[index].onCompletion = function(){ createCities(index) }; // Specify function that will be executed after file has been found
      ajax[index].runAJAX();  // Execute AJAX function
        }
     
         var region = '22';
    	document.getElementById('city').options.length = 0;	// Empty city select box
    	if(region.length>0){
    		var index1 = ajax.length;
    		ajax[index1] = new sack();
     
    		ajax[index1].requestFile = 'getCities2.php?countryCode2='+region+'&city='+150;	// Specifying which file to get
    		ajax[index1].onCompletion = function(){ createCities2(index1) };	// Specify function that will be executed after file has been found
    		ajax[index1].runAJAX();		// Execute AJAX function
    	}
     
     	}
     function getCityList(sel)
    {
    	var country = sel.options[sel.selectedIndex].value;
    	document.getElementById('region').options.length = 0;	// Empty city select box
    	if(country.length>0){
    		var index = ajax.length;
    		ajax[index] = new sack();
     
    		ajax[index].requestFile = 'getCities.php?countryCode='+country;	// Specifying which file to get
    		ajax[index].onCompletion = function(){ createCities(index) };	// Specify function that will be executed after file has been found
    		ajax[index].runAJAX();		// Execute AJAX function
     
    	}
    }
    function getCityList2(sel)
    {
    	var region = sel.options[sel.selectedIndex].value;
    	document.getElementById('city').options.length = 0;	// Empty city select box
    	if(region.length>0){
    		var index = ajax.length;
    		ajax[index] = new sack();
     
    		ajax[index].requestFile = 'getCities2.php?countryCode2='+region;	// Specifying which file to get
    		ajax[index].onCompletion = function(){ createCities2(index) };	// Specify function that will be executed after file has been found
    		ajax[index].runAJAX();		// Execute AJAX function
    	}
    }
     
    function createCities(index)
    {
    	var obj = document.getElementById('region');
    	eval(ajax[index].response);	// Executing the response from Ajax as Javascript code
    }
    function createCities2(index)
    {
    	var obj = document.getElementById('city');
    	eval(ajax[index].response);	// Executing the response from Ajax as Javascript code
    }
     
    </script>
     

    Вложения:

    • ajax.rar
      Размер файла:
      5,1 КБ
      Просмотров:
      3
  2. t0wer

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    735
    Симпатии:
    423
    по вашему вопросу могу сказать следующее:
    что касается самого скрипта, то нужно даписывать структуру try {}catch{} для IE в скрипте ajax.js, так как не может получить данные и загоняет отсюда NULL! Куда дописать, я думаю, вам не составит труда найти. ;)
     
    askarbin нравится это.
  3. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.065
    Симпатии:
    197

    а можно по подробнее, так как я например ничего не понял... я думюа Тс тоже. так как скрипт по видимому писал не он.
     
  4. t0wer

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    735
    Симпатии:
    423
    Скрипт который приведен полностью рабочий. А вот во вложении для ИЕ нет обработчика данных. Для обработки ИЕ нужно дописать одно условие. Все расписано до некуда. Что именно Вам непонятно?! Тут все просто, нужно только прочитать что я написал выше и глянуть в скрипт с вложением. Дописать и все будет работать...
     
Статус темы:
Закрыта.