Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.07.2013, 17:38
Аватар для VladShestakov999
Интересующийся
Отправить личное сообщение для VladShestakov999 Посмотреть профиль Найти все сообщения от VladShestakov999
 
Регистрация: 01.06.2013
Сообщений: 28

Проблемы с 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
Заранее спасибо !!!
Ответить с цитированием
  #2 (permalink)  
Старый 04.07.2013, 19:49
Аватар для VladShestakov999
Интересующийся
Отправить личное сообщение для VladShestakov999 Посмотреть профиль Найти все сообщения от VladShestakov999
 
Регистрация: 01.06.2013
Сообщений: 28

Починил..
Ответить с цитированием
  #3 (permalink)  
Старый 05.07.2013, 11:52
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от VladShestakov999
Починил..
И в чем была проблема? Че за дибильная привычка не отписываться о решении?
Ответить с цитированием
  #4 (permalink)  
Старый 07.07.2013, 14:13
Аватар для VladShestakov999
Интересующийся
Отправить личное сообщение для VladShestakov999 Посмотреть профиль Найти все сообщения от VladShestakov999
 
Регистрация: 01.06.2013
Сообщений: 28

danik.js,Ты и так знаешь как я починил.
Ответить с цитированием
  #5 (permalink)  
Старый 07.07.2013, 14:17
Аватар для VladShestakov999
Интересующийся
Отправить личное сообщение для VladShestakov999 Посмотреть профиль Найти все сообщения от VladShestakov999
 
Регистрация: 01.06.2013
Сообщений: 28

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;
	}
}
Ответить с цитированием
  #6 (permalink)  
Старый 07.07.2013, 15:53
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ну как вариант - создавать div, вставлять контент в него и затем перенести все дочерние элементы в news.
Хотя если у тебя обработчики на news не навешены, innerHTML += сойдет наверное)
Ответить с цитированием
  #7 (permalink)  
Старый 08.07.2013, 13:28
Аватар для VladShestakov999
Интересующийся
Отправить личное сообщение для VladShestakov999 Посмотреть профиль Найти все сообщения от VladShestakov999
 
Регистрация: 01.06.2013
Сообщений: 28

danik.js,Хорошая идея, спасибо.Так гораздо быстрее будет.
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);
                  }
	}
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с insertAdjacentHTML в Opera VladShestakov999 Events/DOM/Window 17 05.07.2013 16:24
Проблемы совместимости при использовании ExtJS в браузерах IE & Opera Allan Stark ExtJS 4 18.09.2012 10:28
проблемы с меню в opera Semen Элементы интерфейса 22 04.06.2012 23:20
проблемы с открытием web-страниц браузером Opera 9.64 Sprite05 Opera, Safari и др. 7 11.10.2010 01:02
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37