Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проблемы с insertAdjacentHTML в Opera (https://javascript.ru/forum/misc/39578-problemy-s-insertadjacenthtml-v-opera.html)

VladShestakov999 04.07.2013 17:38

Проблемы с 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 .Функция для запроса ajax:
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);
	} 
}


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

VladShestakov999 04.07.2013 19:49

Починил..

danik.js 05.07.2013 11:52

Цитата:

Сообщение от VladShestakov999
Починил..

И в чем была проблема? Че за дибильная привычка не отписываться о решении?

VladShestakov999 07.07.2013 14:13

danik.js,Ты и так знаешь как я починил.

VladShestakov999 07.07.2013 14:17

danik.js,Да и ты говорил что проблемы и не было в версии 12.14, да и решении у меня сомнительное, без поддержки insertAdjacentHTML будет через innerHTML перезаписываться, что весьма медленно.
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;
	}
}

danik.js 07.07.2013 15:53

Ну как вариант - создавать div, вставлять контент в него и затем перенести все дочерние элементы в news.
Хотя если у тебя обработчики на news не навешены, innerHTML += сойдет наверное)

VladShestakov999 08.07.2013 13:28

danik.js,Хорошая идея, спасибо.Так гораздо быстрее будет.:dance:
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){[COLOR="Lime"]// если не поддерживается insertAdjacentHTML[/COLOR]
                var div = document.createElement('div');
		div.innerHTML = content;
                 while(div.lastChild){
                  news.appendChild(div.firstChild);
                  }
	}
}


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