Управление таблицей
Доброго дня всем!
Програмлю на Java для удовольствия так что отношу себя к Новичкам.:) Отличный форум, покурив его много чему научился!!!:thanks: Есть такая проблемка, нужно скажем так распарсить страничку, на этой странице я выкусываю только таблицу. Что я сделал: загоняю адрес страницы в браузер, получаю указатель на таблицу, обрабатываю её, может коряво с точки зрения проф. но работает. вот табличка <div style="overflow: auto; height: 480px;" id="block_data"> <table cellpadding="3" cellspacing="0" width="100%"> <tr> <td class="chnow" align="center" valign="top">1111</td> <td class="chnow1" valign="top">aaaaaa</td> </tr> <tr> <td class="chnow" align="center" valign="top">2222</td> <td class="chnow1" valign="top">bbbbbb</td> </tr> <tr bgcolor="#efefef"> <td class="chnow" align="center" valign="top"> <a name="now" id="now">3333</a> </td> <td valign="top">cccc</td> </tr> <tr> <td class="chnow" align="center" valign="top">4444</td> <td valign="top">dddddddddddd</td> </tr> <tr> <td class="chnow" align="center" valign="top">5555</td> <td valign="top">eeeeeeeeeeeeee</td> </tr> </table> </div> вот код var table_temp = document.getElementById('block_data').getElementsByTagName('table')[0]; var i=0; for (; i < table_temp.rows.length; i++) { if (table_temp.rows[i].innerHTML.indexOf('id="now"') == -1) table_temp.rows[i].style.color = 'grey' else { table_temp.rows[i].style.color = 'green'; break; } } table_temp.style.margin = -i*27 + 'px 0px 0px 0px '; var temp_url = document.getElementById('block_data').innerHTML; API.putInnerHTML = temp_url; Вот тут появились первые грабли: обработанную таблицу я вставлю к себе во фрэйм, и хочу что бы "now" было на начало фрэйма, поэтому я margin сдвигаю таблицу в верх на "i" строк, но фрейм небольшой и если строки в таблице длинные то начинается перенос строк, ячейка становится больше одной строки и я не могу попасть точно на начало фрейма. Вообще возможно это сделать? Вторые грабли, на странице есть такой код: <table cellpadding="3" cellspacing="0" width="100%"> <tr> <td class="th"> <a href="#" onclick="xajax_xgetProg('126','0','1')" title>Пн</a></td> <td class="th"> <a href="#" onclick="xajax_xgetProg('126','0','2')" title>Вт</a></td> <td class="th"> <a href="#" onclick="xajax_xgetProg('126','0','3')" title>Ср</a></td> </tr> </table> как мне сымитировать нажатие в браузере или получить новый адрес для станицы, как будто я кликнул ссылку, а это возможно??? Заранее спасибо за помощь!!! |
Цитата:
(эту команду выполнить во фрейме) document.location.hash='Letter-Start' в Качестве якоря может выступить id элемента обрамляющего строку или слово к примеру: <span id=Letter-Start>Тут далее строка |
Цитата:
|
Цитата:
table_temp.rows[i].span= 'Letter-Start'; //добавляю якорь а вставку таблицы во фрейм с якорем делаю так: API.document.frames.my_frames.putInnerHTML = document.getElementById('block_data').InnerHTML.document.location.hash='Letter-Start' Цитата:
вот грубо говоря адрес страницы http://demo_str.ru/?c=1 я делаю у себя .....putInnerHTML = 'http://demo_str.ru/?c=1 '; ну и там через секунду вся страница у меня и совсеми теми кликами что я приводил вот заголовок это страницы: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Demo</title> <meta http-equiv="Cache-Control" content="must-revalidate"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Cache-Control" content="max-age=0"> <meta http-equiv="Prizma" content="no-cache"> <meta http-equiv="Expires" content="0"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript"> var xajaxRequestUri="ajax.php"; var xajaxDebug=false; var xajaxStatusMessages=true; var xajaxWaitCursor=true; var xajaxDefinedGet=0; var xajaxDefinedPost=1; var xajaxLoaded=false; function xajax_xgetProg(){return xajax.call("xgetProg", arguments, 1);} function xajax_xgetNow(){return xajax.call("xgetNow", arguments, 1);} </script> <script type="text/javascript" src="Demo_files/xajax.js"></script> <script type="text/javascript"> window.setTimeout(function () { if (!xajaxLoaded) { alert('Error: the xajax Javascript file could not be included. Perhaps the URL is incorrect?\nURL: /js/xajax.js'); } }, 6000); </script> </head> ..... и т.д. насколько я тут вычитал это библиотека Аякс и мне надо так URL сделать что бы я через putInnerHTML получил уже другие данные, ну или как-то дать команду уже загруженой странице... |
Rik,
Если вам нужно вывести на начало таблицы - просто к тегу таблицы добавьте к ней любое ID <table id=MyId и его и пропишите в document.location.hash='MyId' |
Цитата:
|
Цитата:
Цитата:
API.putInnerHTML = 'http://demo_str.ru/?c=1'; //получаю всю страницу в свой фрейм var table_temp = API.document.getElementById('block_data').getElementsByTagName('table')[0]; //получаю указатель на объект "таблица", но могу достучатся до любого объекта .......// обработка таблицы API.putInnerHTML = ' ';// типа очищаю фрейм var temp_url = document.getElementById('block_data').innerHTML; //получаю блок с таблицей API.putInnerHTML = temp_url; //заливаю на фрейм правленую таблицу API.getElementById('my_frames').style.display = 'block'; //ну тут делаю видимым мой фрейм.как то так.... |
Цитата:
проделываете операцию по скроллингу к краю таблицы и затем можно делать и програмный клик по элементу Для удобства работы из ява скрипт - у ссылок прописать id <table cellpadding="3" cellspacing="0" width="100%"> <tr> <td class="th"> <a id="Link1" href="#" onclick="xajax_xgetProg('126','0','1')" title>Пн</a></td> <td class="th"> <a id="Link2" href="#" onclick="xajax_xgetProg('126','0','2')" title>Вт</a></td> <td class="th"> <a id="Link3" href="#" onclick="xajax_xgetProg('126','0','3')" title>Ср</a></td> </tr> </table> Cам вызов document.getElementById('Link1').click() |
Цитата:
пишет ошибка "document.getElementById("my_frames").location is undefined" видать я накосячил, фрэйм мой объявлен как <div id="my_frames"> соответсвенно я получаю указатель на объект HTMLDivElement, а у него нет свойства location. Это свойство есть у объектов HTMLDocument, вот засада... по ходу проблема усложняется. |
Цитата:
Фокус в том что сайт мне формирует страницу как есть, без всяких id="Link1", т.е. я не могу получить Id строки значит и click() тоже не могу. Не знаю может бредово звучит, я нельзя как нибудь URL сформировать с этим кликом??? |
Часовой пояс GMT +3, время: 18:25. |