Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript: удалить все после определенного тега

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Kai

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я плохо разбираюсь в JavaScript'е. Может, кто-нибудь подскажет, как удалить в документе все, например, после тега </html>?

Всего записей: 369 | Зарегистр. 23-10-2003 | Отправлено: 20:51 08-03-2005
S0ldier



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kai
С помощью скрипта, который *встроен* в этот документ?

Всего записей: 3230 | Зарегистр. 18-01-2005 | Отправлено: 20:55 08-03-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kai

Цитата:
Может, кто-нибудь подскажет, как удалить в документе все, например, после тега </html>?

после - никак.. так бы сразу и писал, что хочешь избавить от баннеров на бесплатном хосте.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:23 08-03-2005
Kai

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
S0ldier
Что значит "встроен"? Не вижу разницы, что он будет написан в самом документе, что будет в него загружаться в src
 
Cheery
Почему никак? А если после тега <b>, например? Или после какого-то слова?
 
Алгоритм действий, как я понимаю, должен быть примерно таким:
- найти нужное слово (тег)
- заменить все, начиная с этой позиции, до конца документа пустой строкой ('')
Или что-то аналогичное.
Такое нет проблем для меня реализовать на PHP, например, но с JavaScript'ом я практически не знаком, а нормальной, полной документации под рукой нет.

Всего записей: 369 | Зарегистр. 23-10-2003 | Отправлено: 21:26 08-03-2005 | Исправлено: Kai, 21:47 08-03-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kai

Цитата:
Почему никак? А если после тега <b>, например? Или после какого-то слова?

потому что можно либо между тэгами.. либо включая сам тэг.
можно, конечно, намудрить и оставить тег незакрытым, так, чтобы он закрывался тем, что ниже.. но оно не стоит того - просто заведи нормальный хостинг.  
В любом случае - ты лишишься и того, как только заметят, что ты глушишь баннеры.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:39 08-03-2005
Kai

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Речь не о хостинге и баннере, речь о задаче, которую мне интересно решить.
Поподробнее насчет "намудрить" - и, главное, с примерами, я ж говорю - не рублю я в JavaScript
 
P.S Если ты оплатишь "нормальный", я с удовольствием :)

Всего записей: 369 | Зарегистр. 23-10-2003 | Отправлено: 21:46 08-03-2005
ManHunter



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kai

Код:
<html>
 
<script>
  function kill_banner() {
    (document.all?document.all['kill']:document.getElementById('kill')).innerHTML = '';
  }
  kill_banner();
</script>
 
<body onLoad="javascript:kill_banner();">
.......
</body>
 
</html>
 
<div id="kill">
I HATE BANNERS!!!!

однако этот код будет работать все равно ТОЛЬКО после ПОЛНОЙ загрузки страницы, иначе никак.

----------
"На любое мое движение ваша реакция предусмотрена,
В лучшем случае - равнодушие, в худшем случае - патология..." (C) Егор Летов

Всего записей: 3105 | Зарегистр. 20-03-2004 | Отправлено: 23:41 08-03-2005
kb82

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если речь вести не о тэге </html>, то удалить все, что идет после определенного тэга можно следующим простым скриптом (при условии, что этот тэг имеет свой  id, либо порядковый номер. если id не установлен, но положение этого тэга постоянно, т.е идет после постоянного количества определенных тэгов
, то можно написать функцию подсчета получения уникального номера этого тэга в теле документа):
 
<html>
<script defer>
function ncon()
{
var cut=document.body.innerHTML;
bannerpos=cut.indexOf('banner');
lastpos=bannerpos-8;
newcontent=cut.substring(0,lastpos);
document.body.innerHTML=newcontent;
}
 
</script>
<body onLoad="ncon();">
<div class="block bleft">
<h2>Содержание страницы</h2>
<p>Все что идет до баннера
</p>
 
</div>
<div id="banner">А здесь баннер</div>
</body>
</html>
 
 
Если нужно удалить что-либо после тэга </html>, то сторго говоря, JavaScript здесь не поможет (вернее, не должен помогать по стандарту), потому что в соответствии со спецификацией, после тэга </html>  идти ничего не должно, это последний тэг в документе. Но раз после этого тэга что-то идет, то можно сделать например следующее:
присвоить этому тэгу свойство dispaly:none. Либо скриптом, либо через css.
 
Ну и, я так понял,  мы все Kai раскусили, и его задача заключается в убирании рекламных баннеров - тогда пользуйся яндексом, там можно найти много способов, как убрать, например, народовский баннер. [o]И не говори, что тебя не предупреждали о последствиях[/o]

Всего записей: 122 | Зарегистр. 03-03-2005 | Отправлено: 00:21 09-03-2005 | Исправлено: kb82, 00:23 09-03-2005
Kai

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kb82

Цитата:
Ну и, я так понял,  мы все Kai раскусили, и его задача заключается в убирании рекламных баннеров

Повторяю еще раз: речь не о баннере, а о задаче, которую мне интересно решить. Баннер убирается тривиальным <div style="visibility: hidden">
 
У меня даже сайта нет, и баннеры я никакие убирать не буду. Просто это меня натолкнуло на задачу, которую мне стало интересно решить. Я стал пробовать сделать это при помощи тех функций, которые вычитал в справочном руководстве, но нифига, естественно, не получилось :) Вот я и спрашиваю, возможно ли это, и если да, то как.
 
В любом случае благодарю ManHunter, kb82

Всего записей: 369 | Зарегистр. 23-10-2003 | Отправлено: 12:07 09-03-2005 | Исправлено: Kai, 12:09 09-03-2005
Elijah999

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
to kb82: Спасибо огромное! Помогло от баннера. Правда для пущей надёжности запустил это через таймаут:
            
            window.onload = function(){
                setTimeout(cldoc, 1000);
            }
            
            function cldoc(){
                var cont = document.body.innerHTML;
                var ind = cont.indexOf('<center>');
                if (ind>0) document.body.innerHTML = cont.substr(0, ind);
            }

Всего записей: 1 | Зарегистр. 08-03-2025 | Отправлено: 20:13 08-03-2025 | Исправлено: Elijah999, 20:15 08-03-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elijah999

Цитата:
Помогло от баннера. Правда для пущей надёжности запустил это через таймаут:

не лучшее решение. потому что снесет все обработчики событий или установленные data- атрибуты, а это могут быть не только баннеры. не говоря уже о нарушении DOM структуры страницы.
на 2005 год это и было безопасно, но не сейчас.

Всего записей: 16065 | Зарегистр. 20-09-2014 | Отправлено: 20:31 08-03-2025 | Исправлено: Mavrikii, 00:29 09-03-2025
Kaylang



Вредный и упрямый
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Похоже ии-бот набивает посты. )
 
Отметил 10 лет от последнего поста в теме.

Всего записей: 38549 | Зарегистр. 29-08-2002 | Отправлено: 14:39 09-03-2025
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript: удалить все после определенного тега


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru