регулярное выражение в js - Visavi.net
https://visavi.net/
RSS - Visavi.nethttps://visavi.net/assets/img/images/logo_small.pngRSS - Visavi.net
https://visavi.net/
[email protected] (admin)[email protected] (admin)Fri, 22 Nov 2024 07:25:56 +030018,спасибо,если кому нужно проблему можно решить так:<br>
<pre class="prettyprint">
//превращение в DOM
var mydoc=document.createElement('div');
mydoc.innerHTML=xmlHttp.responseText;
console.log(mydoc.getElementsByTagName('small'));
</pre>
https://visavi.net/topics/38889/645802
регулярное выражение в js ИзнаурSun, 08 Sep 2013 00:31:10 +0400Сообщенияhttps://visavi.net/topics/38889/64580216. <strong>Iznaur95</strong>, ёптель, я же попросил всего пару строк серверной части.<br>
<br>
<em><span style="font-size:x-small">Добавлено через 00:36 сек.</span></em><br>
17. <strong>Iznaur95</strong>, да, 90%, что дело в этом заголовке.
https://visavi.net/topics/38889/645795
регулярное выражение в js ДмитрийSat, 07 Sep 2013 23:41:54 +0400Сообщенияhttps://visavi.net/topics/38889/645795может дело в этом?<br>
header('Content-type: application/xhtml+xml; charset=UTF-8');(на стороне сервера)
https://visavi.net/topics/38889/645785
регулярное выражение в js ИзнаурSat, 07 Sep 2013 21:30:56 +0400Сообщенияhttps://visavi.net/topics/38889/645785<pre class="prettyprint">
var xmlHttp = createXmlHttpRequestObject();
// создает экземпляр объекта XMLHttpRequest
function createXmlHttpRequestObject()
{
// переменная для хранения ссылки на объект XMLHttpRequest
var xmlHttp;
// эта часть кода должна работать во всех броузерах, за исключением
// IE6 и более старых его версий
try
{
// попытаться создать объект XMLHttpRequest
xmlHttp = new XMLHttpRequest();
}
catch (e){}
// вернуть созданный объект или вывести сообщение об ошибке
if (!xmlHttp)
alert("Ошибка создания объекта XMLHttpRequest.");
else
return xmlHttp;
}
// вызывается для чтения файла с сервера
function process()
{
// продолжать только если в xmlHttp не пустая ссылка
if (xmlHttp)
{
// попытаться установить соединение с сервером
try
{
var d = "http://nero.16mb.com/mail/index.php?act=input";
// инициировать чтение файла с сервера
xmlHttp.open("GET", d, true);
xmlHttp.onreadystatechange = handleRequestStateChange;
xmlHttp.send(null);
}
// вывести сообщение об ошибке в случае неудачи
catch (e)
{
setTimeout('process()', 5000);
}
}
}
// эта функция вызывается при изменении состояния запроса HTTP
function handleRequestStateChange()
{
// когда readyState = 4, мы можем прочитать ответ сервера
if (xmlHttp.readyState == 4)
{
// продолжать, только если статус HTTP равен «OK»
if (xmlHttp.status == 200)
{
try
{
// обработать ответ, полученный от сервера
handleServerResponse();
}
catch (e)
{
// вывести сообщение об ошибке
setTimeout('process()', 5000);
}
}
else
{
setTimeout('process()', 5000);
}
}
}
// обрабатывает ответ, полученный от сервера
function handleServerResponse()
{
// прочитать сообщение, полученное от сервера
var xmlResponse = xmlHttp.responseText;
//console.log(xmlResponse);
//var ex = xmlResponse.body;
myDiv = document.getElementById("lol");
// вывести полученный код HTML
var ns = xmlResponse.match('<div class="gmenu">(.*?)</div>');
myDiv.innerHTML = ns[0];
/* //console.log(xmlResponse);
// xmlRoot = xmlResponse.documentElement;
// console.log(xmlRoot);
// console.log(xmlRoot);
var sm = xmlRoot.getElementsByClassName('gmenu');
console.log(sm);
myDiv = document.getElementById("lol");
// вывести полученный код HTML
myDiv.innerHTML = sm.item(0).data;
*/
}
</pre>
вот весь код
https://visavi.net/topics/38889/645784
регулярное выражение в js ИзнаурSat, 07 Sep 2013 21:30:16 +0400Сообщенияhttps://visavi.net/topics/38889/64578414. <strong>Iznaur95</strong>, конечно не воспринимает, если скрипт отдает результат любым другим способом, кроме обычного HTML. Как скрипт отдает информацию, покажи? Именно строки, где отдается информация и останавливается выполнение.
https://visavi.net/topics/38889/645781
регулярное выражение в js ДмитрийSat, 07 Sep 2013 21:15:40 +0400Сообщенияhttps://visavi.net/topics/38889/645781я так понял js не воспринимает ответ как DOM,пришлось пользоваться регулярками
https://visavi.net/topics/38889/645780
регулярное выражение в js ИзнаурSat, 07 Sep 2013 21:10:24 +0400Сообщенияhttps://visavi.net/topics/38889/645780не возвращает ничего...
https://visavi.net/topics/38889/645776
регулярное выражение в js ИзнаурSat, 07 Sep 2013 20:58:55 +0400Сообщенияhttps://visavi.net/topics/38889/645776console.log(xmlResponse.getElementsByTagName('small')[0]);
https://visavi.net/topics/38889/645774
регулярное выражение в js ДмитрийSat, 07 Sep 2013 20:21:38 +0400Сообщенияhttps://visavi.net/topics/38889/645774проверил responseText:<br>
<pre class="prettyprint">
var xmlResponse = xmlHttp.responseText;
console.log(xmlResponse);
</pre>
<div class="spoiler">
<b class="spoiler-title">html</b>
<div class="spoiler-text" style="display: none;"><br>
//тут ещё html<br>
style="font-size:x-small"><br>
<option selected="selected">Быстрый переход</option><br>
<option value="guest">Гостевая</option><br>
<option value="forum">Форум</option><br>
<option value="news">Новости</option><br>
<option value="gallery">Галерея</option><br>
<option value="down">Загрузки</option><br>
<option value="lib">Библиотека</option><br>
<option value="gazen">Gazenwagen <img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> </option><br>
</select><input type="submit" value="Go!" style="font-size:x-small"/></div></form></div><div class="footer"><a href="http://nero.16mb.com/users/index.php?act=online">Онлайн: 1 / 0</a></div><div style="text-align:center"><p><b>Powered by JohnCMS</b></p><script><br>
audiojs.events.ready(function() {<br>
var as = audiojs.createAll();<br>
});<br>
</script><br>
<div><small>&copy; <a href="http://johncms.com">JohnCMS</a></small></div></div></body></html></div>
</div>
но как вот с этим полученным html работать?например console.log(xmlResponse.getElementsByTagName('small')); ничего не возвращает
https://visavi.net/topics/38889/645773
регулярное выражение в js ИзнаурSat, 07 Sep 2013 20:14:26 +0400Сообщенияhttps://visavi.net/topics/38889/645773В каком формате AJAX возвращает информацию? Надо принимать responseText, и если приходит в JSON или XML или еще как-то экзотически, надо преобразовывать эти данные в нормальный вид.
https://visavi.net/topics/38889/645768
регулярное выражение в js ДмитрийSat, 07 Sep 2013 18:37:08 +0400Сообщенияhttps://visavi.net/topics/38889/645768не могу вывести полученные данные, вот функция:<br>
<pre class="prettyprint">
function handleServerResponse()
{
// прочитать сообщение, полученное от сервера(ajax запрос)
var xmlResponse = xmlHttp.responseXML;
xmlRoot = xmlResponse.documentElement;
var sm = xmlRoot.getElementsByClassName('gmenu');
console.log(sm);
myDiv = document.getElementById("lol");
// вывести полученный код HTML
myDiv.innerHTML = sm.item(0).data;
}
</pre>
в логах html код показывает,а вот вывести на страницу не удается,никак,sm.item(0).data возвращает undefined,sm.item(0) возвращает [object HTMLDivElement]<br>
<br>
<em><span style="font-size:x-small">Добавлено через 03:08 сек.</span></em><br>
хотел использовать responseText т.к. в ответ получаю html код,но тогда getElementsByClassName не работает
https://visavi.net/topics/38889/645755
регулярное выражение в js ИзнаурSat, 07 Sep 2013 15:32:15 +0400Сообщенияhttps://visavi.net/topics/38889/6457557. <strong>dima.london</strong>, это мне и не нужно)пытаюсь написать расширение под хром...
https://visavi.net/topics/38889/645678
регулярное выражение в js ИзнаурFri, 06 Sep 2013 19:23:45 +0400Сообщенияhttps://visavi.net/topics/38889/6456786. <strong>Iznaur95</strong>, а самый простой способ такой:<br>
<pre class="prettyprint"><script>
var value = document.body.getElementsByClassName('искомый_класс')[0];
</script></pre>
Но учти, что getElementsByClassName() не поддерживается древними браузерами типа Netscape, IE6 и прочими.
https://visavi.net/topics/38889/645677
регулярное выражение в js ДмитрийFri, 06 Sep 2013 19:22:29 +0400Сообщенияhttps://visavi.net/topics/38889/6456775. <strong>dima.london</strong>, спасибо
https://visavi.net/topics/38889/645674
регулярное выражение в js ИзнаурFri, 06 Sep 2013 19:11:46 +0400Сообщенияhttps://visavi.net/topics/38889/6456744. <strong>Iznaur95</strong>, тогда сделай так:<br>
<br>
<pre class="prettyprint"><script>
function valuesContent(box, replase) {
var arr = document.body.getElementsByClassName(box);
if (!arr) return false;
var len = arr.length;
if (len <= 0) return false;
if (!replase) var replase = '';
var values = [];
for(var i=0; i<len; i++) {
values.push(arr[i].innerHTML);
arr[i].innerHTML = replase;
}
return values;
};
</script>
<div class="ololo">Содержимое блока 1</div>
<div class="ololo">Содержимое блока 2</div>
<div class="ololo">Содержимое блока 3</div>
<div class="ololo">Содержимое блока 4</div>
<script>
var values = valuesContent('ololo', 'новый контент');
if (values) alert(values[0]);
</script></pre>
<br>
Функция valuesContent() работает так же, как я написал выше, но вернет либо FALSE, либо массив с содержимым всех блоков с искомым классом.<br>
<br>
Принять можно либо просто values[0] - это первый найденный элемент, либо перебором массива. Как удобнее.
https://visavi.net/topics/38889/645672
регулярное выражение в js ДмитрийFri, 06 Sep 2013 19:03:10 +0400Сообщенияhttps://visavi.net/topics/38889/645672