регулярное выражение в js - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Fri, 22 Nov 2024 07:25:56 +0300 18,спасибо,если кому нужно проблему можно решить так:<br> <pre class="prettyprint"> //превращение в DOM var mydoc=document.createElement(&#039;div&#039;); mydoc.innerHTML=xmlHttp.responseText; console.log(mydoc.getElementsByTagName(&#039;small&#039;)); </pre> https://visavi.net/topics/38889/645802 регулярное выражение в js Изнаур Sun, 08 Sep 2013 00:31:10 +0400 Сообщения https://visavi.net/topics/38889/645802 16. <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(&#039;Content-type: application/xhtml+xml; charset=UTF-8&#039;);(на стороне сервера) 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(&quot;Ошибка создания объекта XMLHttpRequest.&quot;); else return xmlHttp; } // вызывается для чтения файла с сервера function process() { // продолжать только если в xmlHttp не пустая ссылка if (xmlHttp) { // попытаться установить соединение с сервером try { var d = &quot;http&#58;//nero.16mb.com/mail/index.php?act=input&quot;; // инициировать чтение файла с сервера xmlHttp.open(&quot;GET&quot;, d, true); xmlHttp.onreadystatechange = handleRequestStateChange; xmlHttp.send(null); } // вывести сообщение об ошибке в случае неудачи catch (e) { setTimeout(&#039;process()&#039;, 5000); } } } // эта функция вызывается при изменении состояния запроса HTTP function handleRequestStateChange() { // когда readyState = 4, мы можем прочитать ответ сервера if (xmlHttp.readyState == 4) { // продолжать, только если статус HTTP равен «OK» if (xmlHttp.status == 200) { try { // обработать ответ, полученный от сервера handleServerResponse(); } catch (e) { // вывести сообщение об ошибке setTimeout(&#039;process()&#039;, 5000); } } else { setTimeout(&#039;process()&#039;, 5000); } } } // обрабатывает ответ, полученный от сервера function handleServerResponse() { // прочитать сообщение, полученное от сервера var xmlResponse = xmlHttp.responseText; //console.log(xmlResponse); //var ex = xmlResponse.body; myDiv = document.getElementById(&quot;lol&quot;); // вывести полученный код HTML var ns = xmlResponse.match(&#039;&lt;div class=&quot;gmenu&quot;&gt;(.*?)&lt;/div&gt;&#039;); myDiv.innerHTML = ns&#91;0]; /* //console.log(xmlResponse); // xmlRoot = xmlResponse.documentElement; // console.log(xmlRoot); // console.log(xmlRoot); var sm = xmlRoot.getElementsByClassName(&#039;gmenu&#039;); console.log(sm); myDiv = document.getElementById(&quot;lol&quot;); // вывести полученный код 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/645784 14. <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/645776 console.log(xmlResponse.getElementsByTagName(&#039;small&#039;)[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=&quot;font-size:x-small&quot;&gt;<br> &lt;option selected=&quot;selected&quot;&gt;Быстрый переход&lt;/option&gt;<br> &lt;option value=&quot;guest&quot;&gt;Гостевая&lt;/option&gt;<br> &lt;option value=&quot;forum&quot;&gt;Форум&lt;/option&gt;<br> &lt;option value=&quot;news&quot;&gt;Новости&lt;/option&gt;<br> &lt;option value=&quot;gallery&quot;&gt;Галерея&lt;/option&gt;<br> &lt;option value=&quot;down&quot;&gt;Загрузки&lt;/option&gt;<br> &lt;option value=&quot;lib&quot;&gt;Библиотека&lt;/option&gt;<br> &lt;option value=&quot;gazen&quot;&gt;Gazenwagen <img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> &lt;/option&gt;<br> &lt;/select&gt;&lt;input type=&quot;submit&quot; value=&quot;Go!&quot; style=&quot;font-size:x-small&quot;/&gt;&lt;/div&gt;&lt;/form&gt;&lt;/div&gt;&lt;div class=&quot;footer&quot;&gt;&lt;a href=&quot;http://nero.16mb.com/users/index.php?act=online&quot;&gt;Онлайн: 1 / 0&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align:center&quot;&gt;&lt;p&gt;&lt;b&gt;Powered by JohnCMS&lt;/b&gt;&lt;/p&gt;&lt;script&gt;<br> audiojs.events.ready(function() {<br> var as = audiojs.createAll();<br> });<br> &lt;/script&gt;<br> &lt;div&gt;&lt;small&gt;&amp;copy; &lt;a href=&quot;http://johncms.com&quot;&gt;JohnCMS&lt;/a&gt;&lt;/small&gt;&lt;/div&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;</div> </div> но как вот с этим полученным html работать?например console.log(xmlResponse.getElementsByTagName(&#039;small&#039;)); ничего не возвращает 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(&#039;gmenu&#039;); console.log(sm); myDiv = document.getElementById(&quot;lol&quot;); // вывести полученный код 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/645755 7. <strong>dima.london</strong>, это мне и не нужно)пытаюсь написать расширение под хром... https://visavi.net/topics/38889/645678 регулярное выражение в js Изнаур Fri, 06 Sep 2013 19:23:45 +0400 Сообщения https://visavi.net/topics/38889/645678 6. <strong>Iznaur95</strong>, а самый простой способ такой:<br> <pre class="prettyprint">&lt;script&gt; var value = document.body.getElementsByClassName(&#039;искомый_класс&#039;)&#91;0]; &lt;/script&gt;</pre> Но учти, что getElementsByClassName() не поддерживается древними браузерами типа Netscape, IE6 и прочими. https://visavi.net/topics/38889/645677 регулярное выражение в js Дмитрий Fri, 06 Sep 2013 19:22:29 +0400 Сообщения https://visavi.net/topics/38889/645677 5. <strong>dima.london</strong>, спасибо https://visavi.net/topics/38889/645674 регулярное выражение в js Изнаур Fri, 06 Sep 2013 19:11:46 +0400 Сообщения https://visavi.net/topics/38889/645674 4. <strong>Iznaur95</strong>, тогда сделай так:<br> <br> <pre class="prettyprint">&lt;script&gt; function valuesContent(box, replase) { var arr = document.body.getElementsByClassName(box); if (!arr) return false; var len = arr.length; if (len &lt;= 0) return false; if (!replase) var replase = &#039;&#039;; var values = &#91;]; for(var i=0; i&lt;len; i++) { values.push(arr&#91;i].innerHTML); arr&#91;i].innerHTML = replase; } return values; }; &lt;/script&gt; &lt;div class=&quot;ololo&quot;&gt;Содержимое блока 1&lt;/div&gt; &lt;div class=&quot;ololo&quot;&gt;Содержимое блока 2&lt;/div&gt; &lt;div class=&quot;ololo&quot;&gt;Содержимое блока 3&lt;/div&gt; &lt;div class=&quot;ololo&quot;&gt;Содержимое блока 4&lt;/div&gt; &lt;script&gt; var values = valuesContent(&#039;ololo&#039;, &#039;новый контент&#039;); if (values) alert(values&#91;0]); &lt;/script&gt;</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