Estou com um probleminha no IE7... a classe que eu criei com o prototype( ajax = new cAjax(); ) funciona apenas no Firefox, mas no IE7 diz que 'ajax' não está definido.
Abaixo o código para darem uma analizada.
Ajax.js
// DEFININDO O AJAX if (window.XMLHttpRequest) { // Mozilla, Safari, ... HttpRequest = new XMLHttpRequest(); if (HttpRequest.overrideMimeType) { HttpRequest.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { // IE try { HttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { HttpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} } } // CRIANDO CLASSE "cAjax" var cAjax = new Class.create(); // VARIÁVEIS E ARRAYS DA FILA fila = []; ifila = 0; // DEFININDO FUNÇÕES DE AJAX cAjax.prototype = { // INICIALIZANDO CLASSE initialize: function(){}, // ADICIONAR REQUISIÇÕES DO AJAX NA FILA Fila: function(funcao, info1, info2, info3){ if(info1 == 'undefined') info1 = 0; if(info2 == 'undefined') info2 = 0; if(info3 == 'undefined') info3 = 0; fila[fila.length]=[funcao, info1, info2, info3]; if((ifila+1)==fila.length) funcao(); }, // QUANDO TERMINAR UMA REQUISIÇÃO AJAX CHAMAR ESTA FUNÇÃO concluido: function(){ ifila++; if(ifila+1 == fila.lenght) fila[ifila][0] (); }, // CORRIGE OS ERROS TRANSMITIDOS PELO AJAX COMO ACENTUAÇÃO E SINAIS HTML... corrigir: function(str){ retorno = str.replace(/\+/g," "); retorno = unescape(retorno); return retorno; }, //################################################### //# COMEÇO DAS FUNÇÕES DE REQUISIÇÕES AJAX # //################################################### // FUNÇÃO PARA BUSCAR MODELOS DE ACORDO COM O FABRICANTE ESCOLHIDO buscar_modelos: function(){ ... } } // INICIANDO CLASSE var ajax = new cAjax();
Chamada pro ajax
<select name="cbo_id_fabricante_bp" id="cbo_id_fabricante_bp" onchange="ajax.Fila(ajax.buscar_modelos, 'frm_busca_padrao', '_bp', 1);">
VALEU
Edição feita por: pgnall, 21/02/2007, 15:43.