Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Как изменить текст на странице вставленный через


Автор: Alx 11.12.2003, 21:18
Итак: предположим имеется js-файл, расположенный на чужом сервере, который я не способен менять.
допустим это блок новостей. его содержание:
Код

document.write ("<b>13.00</b> <a href="#" title="все новости за сегодня">11.12.2003</a> - <i>Пора обедать!</i>")


Он выведет:

13.00 http://# - Пора обедать!

А мне нужно только

13.00 - Пора обедать!

Т.е. мне нужно изменить текст, выводимый этим скриптом. Я думаю можно попробывать каким-то образом через индексОф и Cut вырезать тег <A>... очень нужно! кто-нить может помочь?

Автор: Secandr 12.12.2003, 08:34
У меня ничего умнее в голову не приходит кроме как получить этот скрипт при помощи своего *.php или *.pl оставить что надо и вставить в хтмл.

Автор: Alx 12.12.2003, 11:59
я, к сожалению не умеб пока ничего на ПХП делать, а на Перле тем более(

Автор: [xoodo] 12.12.2003, 20:04
Я, как обычно, с извратом.

1. Получаем новость.
2. Пишем ее в инпут. Можно?
3. Записываем значение инпута в переменную.
4. Извлекаем из переменной нужную подстроку(подстроки).
5. Пишем в инпут уже желаемые подстроки.

Если надо, придумаем код. smile.gif

Автор: Secandr 12.12.2003, 23:50
А ещё можно сделать document.close и отрисовать его заново, можно iframe использовать, можно в лайер писать.

Автор: [xoodo] 13.12.2003, 02:07
Цитата(Secandr @ 12.12.2003, 23:50)
А ещё можно сделать document.close и отрисовать его заново, можно iframe использовать, можно в лайер писать.

А говорил, в голову ничего не приходит smile.gif

Автор: Alx 14.12.2003, 16:38
такс... что-то я себя ламером почувствовал...( наверное мне ещё учиться и учиться... давайте код!)) ЭХ... обитна!(

Автор: [xoodo] 14.12.2003, 21:17
Я перемыслил свою мысль. Чтобы меньще извращаться, будем использовать не input, а textarea:
Код
//рисуем текстареа:
<script type="text/javascript">
document.write("<textarea name=\"crap\">");
</script>

//включаем этот спам, который надо обработать:
<script type="text/javascript" src="http://www.microsoft.com/billy_boy.js"></script>

//закрываем текстареа:
<script type="text/javascript">
document.write("</textarea>");

//обрабатываем содержание; получаем текст из текстареа:
t=document.getElementByName().crap.value;

//сооружаем из подстрок нужный кусок:
t=t.substring(0,5)+t.substring(15,10);
//например, так; этот кусок запишет в t 5 символов, начиная с нулевого, и потом сразу 10 символов, начиная с 15-го; нумерация символов с нуля - это важно; сколько там символов и откуда - решай сам;

//теперь рисуем в текстареа новое значение:
document.getElementByName().crap.value=t;
</script>


Вроде все. Потом у текстареа можно границы убрать и задний фон поменять, но это уже к ХТМЛовским ребятам. Если нужно в полученном сообщении олпределенные теги искать, а не фиксированные позиции, то тоже придумаем что-нибудь smile.gif

Автор: Гость_DeathStorm 15.12.2003, 18:04
можно дом модель поюзать
и узнать каким номером этот а идет и childNode этот заменить

Автор: Alx 15.12.2003, 19:45
такс..., [xoodo], спасибо большое, но если бы всё было так просто, я б не спрашивал!)) дело в том, что длина всех трёх полей всё время разная, т.е. сегодня там 5 символов, а завтра уже деять! Поэтому то я и говорю, что нужно как-то вычестьот тудова тег <a>, иначе думаю не получится!

Автор: [xoodo] 15.12.2003, 23:41
Код

for(i=0;i<t.length;i++)
{
   if(t.substring(i, 3)=="<a>")
   {
       bp1=i;
   }
   if(t.substring(i, 4)=="</a>")
   {
       bp2=i;
   }
}
t=t.substring(0, bp1)+t.substring(bp2, t.length);


Итак, в полученной строке ищем подстроку "<a>", найдя, записываем ее начальную позицию. Потом ищем конечный тэг, записываем его положение. И рисуем строку до <a> и после </a>. Т.е. все, кроме ссылки. Это очевидно можно сделать короче, но тем не менее...

Попал наконец-то или опять нет? smile.gif

Автор: Alx 15.12.2003, 23:58
попал, спасибки!)) только я теперь тебе скажу, как покороче!)

Код

function redscript
{var urls = document.links.length;
for (var i=1; i<=urls; i++)
{if (document.links[i].href == "url_path")
document.links[i].style.display = none;
}
}


вот, а то я уж совсем расстроился, что никак не мог это сварганить!)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)