Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Изменение сгенерённого html (https://javascript.ru/forum/events/15838-izmenenie-sgenerjonnogo-html.html)

Wolfer 15.03.2011 17:15

Изменение сгенерённого html
 
Добрый день)
Представляю вашему вниманию такую вот задачку:

Дано: сгенерированная прогой страница, наполненная javaскриптами, которые после отработки в браузере представляются несколькими таблицами с данными.

Можно в определённое место этой страницы с помощью той же проги добавить собственный java-скрипт.
Вручную добавить в любое место страницы java-script или изменить автоматически-сгенерированный нельзя.

Вопрос: можно ли с помощью собственного скрипта изменить сгенерённую таблицу? В частности надо добавить строчек и заполнить их данными.
Т.е. необходимо выполнить два действия:
1. получить доступ к "живому" html
2. переписать его

Я в javascript почти ноль(

Буду крайне признателен за любые советы по решению такой задачи)

розовый слоник 15.03.2011 19:48

по onload можно сделать все что угодно с вашей таблицей, как добавить\удалить ячейки так и нарисовать слешами обнаженную грудь:)

Wolfer 15.03.2011 22:25

А каким образом получить доступ к живому html? Вроде как innertext выводит только исходный скрипт, а не html, который должен получиться после обработки...

Wolfer 15.03.2011 23:04

Кажется, что-то получается... Но появился вопрос. У меня в объекте с ID paral в html прописан текст "hello". Скрипт его меняет на "LOL", а после того, как страница загружена, должен изменить на "ppp". Alertы показывают, что код исправно меняется, но после загрузки продолжает отображаться как LOL. Что за лол?)
Скрипт сейчас выглядит так:

<script type="text/javascript">
var theElement = document.getElementById("paral");
var allhtml = document.getElementsByTagName("html");
var allhtmltml = allhtml[0].innerHTML;
var i=0;
theElement.innerHTML = "LOL"

window.onload = function(){
allhtmltml = allhtml[0].innerHTML;
i=0

i=allhtmltml.indexOf("LOL",1);

alert(allhtmltml);
allhtmltml=allhtmltml.substring(0,i)+"ppp"+allhtml tml.substring(i+3,allhtmltml.length);
alert(allhtmltml);

}
}
</script>

Т.е. изменённый код не вступает в силу... Что я делаю не так? Неужели нельзя менять html в общем порядке (парсить нужное и менять) и можно менять только обращаясь к отдельным объектам?
Спасибо.

lalala 16.03.2011 10:31

для начала)
Цитата:

Сообщение от Wolfer
allhtmltml=allhtmltml.substring(0,i)+"ppp"+allhtml tml.substring(i+3,allhtmltml.length);

в остальном..
Цитата:

Сообщение от Wolfer
Можно в определённое место этой страницы с помощью той же проги добавить собственный java-скрипт.
Вручную добавить в любое место страницы java-script или изменить автоматически-сгенерированный нельзя.

Ну так попросите прогу пусть сама сделает, то что хотите:) шутка конеш..но смешно как то получается)

вам надо править таблицу? ну так и правьте таблицу
Цитата:

Сообщение от Wolfer
var allhtml = document.getElementsByTagName("html");

втф?? вам всю страницу что ли?

var table = document.getElementsByTagName("table");
далее получаем набор сторк и столбцов, ищем/правим/добавляем то, что нужно.

как добавить что-либо гуглите appendChild

розовый слоник 16.03.2011 11:23

по поводу
var allhtml = document.getElementsByTagName("html");

солидарен с предыдущим оратором :)
можно воспользоваться appendChild или можно все тем же innerHTML например находим нужный тег table и перезаписываем его:)
var allhtml = document.getElementsByTagName("table");
allhtml[0].innerHTML += "<tr><td>trololo</td></tr>"


короче сказать вариантов море:) читайте, изучайте, интересуйтесь :)


Часовой пояс GMT +3, время: 21:14.