sash003,
Цитата:
return kids.length ? _A_(kids) : falseи так везде function _init_(el){ if (!el) return |
Знаешь, оно просто ничего не делает когда не находит, возвращает предыдущий просто. боюся лезть чтото менять, хотя раз ты говоришь, сделаю :)
|
рони,
Зацени :) /* пишем аякс-функцию */ function ajax(obj){ try{var xhr = new XMLHttpRequest() } catch(e1){try{ xhr = new ActiveXObject("Msxml2.XMLHTTP") } catch(e2){try{ xhr = new ActiveXObject("Microsoft.XMLHTTP") } catch(e3){ xhr = false } } } obj.type = obj.type || "GET" ; if(obj.type === 'POST'){ var params = ''; for(i in obj.data){ params += i + '=' + obj.data[i] + '&'; } params = params.slice(0, -1); xhr.open("POST", obj.url, true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //xhr.setRequestHeader("Content-length", params.length); //xhr.setRequestHeader("Connection", "close"); xhr.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200){ obj.success(this['response' + obj.dataType]); } else console.log( "Ajax error: " + this.statusText); } xhr.send(params); } else if(obj.type === "GET"){ var params = '?'; for(i in obj.data){ params += i + '=' + obj.data[i] + '&' } params = params.slice(0, -1); params += "&nocache=" + Math.random() * 1000000 //console.log(params); xhr.open("GET", obj.url + params, true); xhr.onreadystatechange = function() { if(this.readyState == 4 && this.status == 200){ obj.success(this['response' + obj.dataType]); } else console.log( "Ajax error: " + this.statusText) } xhr.send(null); } } ajax({ url : './test_ajax.php', type: 'POST', dataType: 'Text', data: {name: 'sash', _data_ : 'true'}, success: function(response){ document.getElementById('response').innerHTML = response; } }); |
Цитата:
|
KosBeg, сенк ю :)
Теперь надо придумать как сделать чтобы можно было делать загрузку файлов как у Дениса на сайте http://incode.pro/jquery/ajax-na-pra...ka-fajlov.html contentType: false, // важно - убираем форматирование данных по умолчанию processData: false, // важно - убираем преобразование строк по умолчанию Сделать проверку на тип данных (обьехт, строка) и ещё подскаж что забыл :) |
Полный вариант, не супер но сойдёт
function ajax(obj){ try{var xhr = new XMLHttpRequest() } catch(e1){try{ var xhr = new ActiveXObject("Msxml2.XMLHTTP") } catch(e2){try{ var xhr = new ActiveXObject("Microsoft.XMLHTTP") } catch(e3){var xhr = false } } } obj.type = obj.type || "GET" ; if(obj.type === 'POST'){ xhr.open("POST", obj.url, true); var params = ''; if (typeof obj.data === 'string') params = obj.data; else if(typeof obj.data === 'object'){ if(obj.contentType === false){ params = obj.data; console.log(params); } else{ for(var i in obj.data){ params += i + '=' + obj.data[i] + '&'; } params = params.slice(0, -1); console.log(params) xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); } xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); } xhr.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200){ obj.success(this['response' + obj.dataType]); } else console.log( "Ajax error: " + this.statusText); } xhr.send(params); } else if(obj.type === "GET"){ var params = '?'; if (typeof obj.data === 'string') params += obj.data; else if(typeof obj.data === 'object'){ for(var i in obj.data){ params += i + '=' + encodeURIComponent(obj.data[i]) + '&' } params = params.slice(0, -1); params += "&nocache=" + Math.random() * 1000000; } xhr.open("GET", obj.url + params, true); xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); xhr.onreadystatechange = function() { if(this.readyState == 4 && this.status == 200){ obj.success(this['response' + obj.dataType]); } else console.log( "Ajax error: " + this.statusText) } xhr.send(null); } } document.forms.f1.onsubmit = function(e){ e.preventDefault(); var formObj = {}; var elem = document.forms.f1; var inputs = elem.querySelectorAll('[name]'); for(var i = 0; i < inputs.length; i++){ formObj[inputs[i].name] = inputs[i].value; if(window.FormData) { var formData = new FormData(document.forms.f1); } } // попытка отправки ajax({ url : './test_ajax.php', type: 'POST', dataType: 'Text', contentType : false, data:formData,//{text: document.querySelector('[name=text]').value, _data_ : 'true'}, success: function(response){ document.getElementById('response').innerHTML = response; } }); } |
Если есть свой ресурс с доступом к PHP, нарисовать простенький проксер GET запросов и дополнить либу кроссдоменным GET - Аяксом, часто востребовано. К примеру поиск картинок в гугле, или чтение RSS с ресурсов
|
Цитата:
как на бесплатный хостинг - очень даже неплохо, или например это - http://aws.amazon.com/ru/free/ Цитата:
Цитата:
|
KosBeg,
Я давно с PHP не баловался, помню только фичу, что нун трансформировать(через PHP) полученный прокси-запросом код страницы(Если он HTML) в UTF-8, если исходный в windows-1251, остальное вроде как в пяток строк. Начни с гугла, типо: - простое проксирование GET-запросов на PHP |
Часовой пояс GMT +3, время: 11:13. |