Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как выводить часть элементов страницы через javascript (https://javascript.ru/forum/events/13847-kak-vyvodit-chast-ehlementov-stranicy-cherez-javascript.html)

Victim 16.12.2010 11:54

Как выводить часть элементов страницы через javascript
 
Добрый день, дорогие жители форума.
У меня такая проблема. Начну немного из далека.
Страницы обычно содержат очень много разных элементов, которые не обязательно надо показывать поисковикам, но для удобства пользователей они необходимы.
Взять хотя бы те же банеры, служебные заметки и инструменты, дублирование навигации.
Закрывать это в теги <noindex> не вариант, так как подходит только для Яндекса, да и то не факт, что он не учитывает собержимое.
В общем единственный выход - выдавать содержимое через JS.

Например банеры я победил:

<script type="text/javascript">
document.write('<div id="baner" style="height:60px;width:468px;"><a href="..." target="_blank"><img src="..." alt="..." title="..." height="60" width="468"></a></div>');
</script>

И просто этот кусок вставлен в html страницы, таким образом банер отображается, а поисковик все что снутри <script type="text/javascript"> ... </script> не видит. Отлично!!!

Тоже самое можно провернуть с текстом, но только если он вытянут в одну строчку.

Внимание вопрос! Как быть с большими кусками html-кода?

Например, хочу выводить подобным методом навигацию:

<ul>
<li><a href="...">Главная</a></li>
<li><a href="...">Регистрация</a></li>
<li><a href="...">Статистика</a></li>
<li><a href="...">Контакты</a></li>
</ul>

Но если просто этот кусок засадить в <script type="text/javascript"> ... </script> то ничего не отображается, это все просто пропадает со страницы, хотя в исходном коде присутствует.
Так как я вообще ничего не понимаю в JS то и не знаю в чем проблема.

Подскажите пожалуйста, люди добрые. Как поступить?

dmitriymar 16.12.2010 13:37

пропадает с использованием document.write?

dmitriymar 16.12.2010 13:41

Цитата:

Сообщение от Victim
<ul>
<li><a href="...">Главная</a></li>
<li><a href="...">Регистрация</a></li>
<li><a href="...">Статистика</a></li>
<li><a href="...">Контакты</a></li>
</ul>


незнаю их бы я поисковику как раз бы и показывал.сайт ведь не только метатегам индексируется(точне уже по ним мало кто индексирует) но и (а именно)по ссылкам приводящим на другие страницы сайта

Victim 16.12.2010 15:12

Цитата:

Сообщение от dmitriymar
пропадает с использованием document.write?

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

Сообщение от dmitriymar
незнаю их бы я поисковику как раз бы и показывал.сайт ведь не только метатегам индексируется(точне уже по ним мало кто индексирует) но и (а именно)по ссылкам приводящим на другие страницы сайта

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

monolithed 16.12.2010 15:29

Victim не уподобляйтесь своему нику и пока забудьте что метод write() существует:

Цитата:

Сообщение от Victim
Например, хочу выводить подобным методом навигацию:

<script type="text/javascript">
window.onload = function(){
    document.getElementById('div').innerHTML =
        '<ul>\
            <li><a href="#">1</a></li>\
            <li><a href="#">2</a></li>\
            <li><a href="#">3</a></li>\
            <li><a href="#">4</a></li>\
       </ul>';
};
</script>
<div id="div"></div>

Victim 18.12.2010 08:58

monolithed, Спасибо вам огромное! Сейчас буду пробовать!
А скажите, мне вот в голову мысль пришла, а что если собрать все вот эти куски, которые надо закрыть, в один js файл и потом подцепить его в шаблоне, а в нужных местах просто прописывать <div id="div"></div>

Как это дело реализовать?
Точнее как должен выглядеть внутри js файл.

monolithed 18.12.2010 11:02

Цитата:

Сообщение от Victim
Как это дело реализовать?
Точнее как должен выглядеть внутри js файл.

Помоему вы сами ответили на свой вопрос.
Цитата:

Сообщение от Victim
в один js файл и потом подцепить его в шаблоне, а в нужных местах просто прописывать <div id="div"></div>


Afres 28.12.2011 20:18

А можно ли как то реализовать так, чтобы не нужно было прописывать кроме строчки скрипта ничего более (я имею ввиду div в который будет вставляться код)
Для примера: У меня будет блок с фиксированным размещением, при клике на который будет выводиться форма (LiveOperator).
Условие: Простое подключение в виде одного javascript файла и ничего более.
Заранее спасибо за ответы.

nerv_ 28.12.2011 20:45

Afres, не совсем понятен вопрос. Если у Вас уже присвоен Id элементу, второй раз делать этого не надо.

phenix79 28.12.2011 20:51

Если я вас правильно понял, вы хотите вывести HTML-код с помощью javascript?
Вот так выводится ваша навигация из JS
<body>

<script type="text/javascript">
var z="<ul><li><a href='ссылка'>Главная</a></li><li><a href='ссылка'>Регистрация</a></li><li><a href='ссылка'>Статистика</a></li><li><a href='ссылка'>Контакты</a></li></ul>";
document.write(z);
</script>

</body>


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