Рандомная ссылка

Тема в разделе "JavaScript", создана пользователем Sudba, 22 июл 2014.

Модераторы: ZiX
  1. Sudba

    Sudba

    Регистр.:
    6 дек 2007
    Сообщения:
    857
    Симпатии:
    45
    Здравствуйте. Подскажите пожалуйста, нужен скрипт рандомной ссылки и текста.
    Например:
    Код:
    <a href="http://site1.com">Ссылка1</a>
    <a href="http://site2.com">Ссылка2</a>
    И выводилась рандомно, то Ссылка1, то Ссылка2. Но выводилась с помощью js скрипта на сайте.
     
  2. ultra

    ultra дизигнитор дизигнирующий дизигны

    Moderator
    Регистр.:
    15 ноя 2011
    Сообщения:
    195
    Симпатии:
    269
    function r_out01(){
    var b=[];
    b[0]='<a href="http://site1.com">Ссылка1</a>';
    b[1]='<a href="http://site2.com">Ссылка2</a>';
    var i=Math.floor(Math.random()*b.length);
    document.write( b );
    }
    <script type="text/javascript">r_out01()</script>



    <script language="JavaScript">
    <!--
    var r_text = new Array ();
    r_text[0] = "<a href="http://site1.com">Ссылка1</a>";
    r_text[1] = "<a href="http://site2.com">Ссылка2</a>";
    var i = Math.floor(2*Math.random())

    document.write(r_text);

    //-->
    </script>
     
    Sudba нравится это.
  3. Sudba

    Sudba

    Регистр.:
    6 дек 2007
    Сообщения:
    857
    Симпатии:
    45
    но я так понимаю, что данный код не позвонил индексировать ссылку? а я хотел бы чтобы она индексировалась.
     
  4. magicrobot

    magicrobot Постоялец

    Регистр.:
    22 сен 2013
    Сообщения:
    102
    Симпатии:
    35
    Сделал через jQuery
    В head'e:
    HTML:
    <script>
    $(document).ready( function(){
          $("#randomlinks a").hide();    //    Спрятали все ссылки внутри дива #randomlinks
          $numb = Math.floor(Math.random()*$("#randomlinks a").length);    //    Постичтали, сколько там ссылок внутри и вывели случайное число исходя из количества
          $("#randomlinks a").eq($numb).show();    //показали ссылку с этим индексом
    });
    </script>
    
    в body:
    HTML:
    <div id="randomlinks">
        <a href="http://nic.yandex">nic.yandex</a>
        <a href="http://goo.gl">goo.gl</a>
        <a href="http://api.2gis.ru">api.2gis.ru</a>
        <a href="http://kupidon.club/">kupidon.club</a>   
    </div>

    Библиотека jQuery должна быть подключена хотя бы так:
    HTML:
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
     
  5. magicrobot

    magicrobot Постоялец

    Регистр.:
    22 сен 2013
    Сообщения:
    102
    Симпатии:
    35
    В этом случае, кстати, все 4 ссылки внутри нужного нам дива представлены в виде чистого html и вполне индексируемые.
     
  6. Sudba

    Sudba

    Регистр.:
    6 дек 2007
    Сообщения:
    857
    Симпатии:
    45
    Это конечно хорошо, но представьте, что у меня 100 ссылок? и тогда в html исходном коде какой здоровый столбец будет
    <div id="randomlinks">. А вот если бы убрать все эти ссылки и выводить по одной.
    Sape ведь каким-то образом выводит ссылки, так что они индексируются. Хотя принцип такой же. Система отослала на сайт данные - Сайт вывел ссылку.
     
  7. magicrobot

    magicrobot Постоялец

    Регистр.:
    22 сен 2013
    Сообщения:
    102
    Симпатии:
    35
    у вас взаимоисключающие условия:
    1) вы хотите, чтобы обработка шла на клиенте, то есть с помощью JS
    2) вы хотите, чтобы ссылка индексировалась
    3) вы не хотите, чтобы грузились все ссылки сразу, а только по одной.

    тут что то одно имхо придётся исключить - самое простое - формировать код вывода не на клиенте, а на сервере. Но тогда это не клиентский javascript, а скорее, PHP..

    Ничего страшного думаю нет. Любая средняя картинка на сайте будет весить в сотни раз больше этого здорового столбца. никогда бы не заморочился на этом моменте, если бы задачу решал бы именно так.