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.










