Проблемы с 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, время: 02:41. |