Проблемы с 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 Заранее спасибо :)!!! |
Починил..
|
Цитата:
|
danik.js,Ты и так знаешь как я починил.
|
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;
}
}
|
Ну как вариант - создавать div, вставлять контент в него и затем перенести все дочерние элементы в news.
Хотя если у тебя обработчики на news не навешены, innerHTML += сойдет наверное) |
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, время: 05:25. |