Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Проблемы с insertAdjacentHTML в Opera (https://javascript.ru/forum/events/39572-problemy-s-insertadjacenthtml-v-opera.html)

VladShestakov999 04.07.2013 16:26

Проблемы с insertAdjacentHTML в Opera
 
function lenta(ukazatel){
	var news = document.getElementById('news');
	var content = ajax('../lenta.php?uk='+ukazatel,'GET',null);
	news.insertAdjacentHTML("beforeEnd",content);
}

Вот эта функция работает для подгрузки новостной ленты. В Google Chrome все ок, а вот в опере не работает почему-то.Сама функция принимает ukazatel, который передается на сервер, а сервер начиная с ukazatel возращает 15 новостей из БД.Сам запрос в Опере проходит, но почему-то html не вставляется.Вот эта страничка http://etpcompany.zz.mu/news .И еще одна просьба. Кому не лень, поюзайте сайт, посоветуйте за сколько можно заказчику продать :). Вот админка: http://etpcompany.zz.mu/login_view
Логин: admin
Пароль: energicalproject
Заранее спасибо!!!:)

danik.js 04.07.2013 16:38

Не пробовал в нижнем регистре писать beforeend? И на че именно ругается опера, то?

VladShestakov999 04.07.2013 16:39

Нет, не пробывал.А стоит? Не ругается она, просто не вставляет.Консоль пуст. http://etpcompany.zz.mu/news

VladShestakov999 04.07.2013 16:42

Попробывал. То же самое.

Nekromancer 04.07.2013 17:02

Там нифига не работает у вас и вообще никакой реквест не шлётся. Куда тыкать то?

VladShestakov999 04.07.2013 17:08

Ну как не шлется, если в Google Chrome работает :) ? Вот функция.
function ajax(qe,method,data){
	var req;
	if (window.XMLHttpRequest)	
	    req = new XMLHttpRequest();   
	else if (window.ActiveXObject) {	
	    try {
	        req = new ActiveXObject('Msxml2.XMLHTTP');  
	    } catch (e){}									
	    try {											
	        req = new ActiveXObject('Microsoft.XMLHTTP');
	    } catch (e){}
	}
	if (req) {
	    req.onreadystatechange = function() {
	    	if (req.readyState == 4 && req.status == 200)  {
		return req.responseText;
			}        
	    };  
	    req.open(method,qe, false);
	    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	    req.send(data);
	} 
}

Nekromancer 04.07.2013 18:37

В network не вижу ни одного xhr.

VladShestakov999 04.07.2013 18:44

Nekromancer,
Цитата:

Сообщение от VladShestakov999 (Сообщение 260134)
Вот эта функция работает для подгрузки новостной ленты.

Прокрути страницу, срабатывает когда до конца прокручиваешь, это же новостная лента.

danik.js 04.07.2013 19:42

Так работает же в опере. v12.14
Вот только тормозит и глючит страница при подгрузке. Смотрел в Хроме.

VladShestakov999 04.07.2013 19:45

function lenta(ukazatel){
	var news = document.getElementById('news');
	var content = ajax('../lenta.php?uk='+ukazatel,'GET',null);
	var length = news.children.length;
	news.insertAdjacentHTML("beforeEnd",content);
	var newlength = news.children.length
	if(length == newlength){
		news.innerHTML += content;
	}
}

Как вариант..но будет тормозить ибо будет старое содержимое перезаписываться и картинки по новому будет грузиться, что весьма печально.

VladShestakov999 04.07.2013 19:46

danik.js,
v12.15 не работало

VladShestakov999 04.07.2013 19:48

Ладно, работает и хорошо.И еще одна просьба. Кому не лень, поюзайте сайт, посоветуйте за сколько можно заказчику продать . Вот админка: http://etpcompany.zz.mu/login_view
Логин: admin
Пароль: energicalproject
Заранее спасибо :)!!!

danik.js 04.07.2013 20:04

Я бы подумал об асинхронности запроса. Ибо подвисает. Не надолго, но очень заметно и впечатление оставляет хреновое.

VladShestakov999 04.07.2013 21:31

danik.js,
Там переходы (менюшка) на Ajax'e, получается что ассинхронный это когда запрос посылается и скрипт пошел выполняться не ждя ответа, но без ответа все ломается.Хотя можно сделать одну функцию для синхронного запроса(для менюшки) , а другую, асинхронную, для других целей вроде новостной ленты.

danik.js 04.07.2013 21:43

Цитата:

Сообщение от VladShestakov999
Там переходы (менюшка) на Ajax'e, получается что ассинхронный это когда запрос посылается и скрипт пошел выполняться не ждя ответа, но без ответа все ломается.Хотя можно сделать одну функцию для синхронного запроса(для менюшки) , а другую, асинхронную, для других целей вроде новостной ленты.

Сотни тысяч сайтов как-то работают с асинхронной подгрузкой, а для тебя это вдруг проблема? Че за бред.
Вобще, я бы просто подключил jQuery и не пришлось бы писать столько кода и беспокоиться о кроссбраузерности..

VladShestakov999 05.07.2013 16:11

danik.js, Я не использую jQuery, так как ее возможности ограничены, а на чистом JS можно уйти куда дальше.Скорее всего эти сотни тысяч сайтов просто перенесли изменение содержимого содержания в событие onreadystage, что в моем случае не предусмотрено и моя функция естественно требует расширения.Например чтобы она принимала объект с нужными свойствами, а не указанные брались по умолчанию и так далее.:)

danik.js 05.07.2013 16:22

Цитата:

Сообщение от VladShestakov999
danik.js, Я не использую jQuery, так как ее возможности ограничены, а на чистом JS можно уйти куда дальше

facepalm.jpg ...

danik.js 05.07.2013 16:24

Цитата:

Сообщение от VladShestakov999
что в моем случае не предусмотрено и моя функция естественно требует расширения

Ага, далеко ушел :lol:


Часовой пояс GMT +3, время: 11:00.