Два onclick в одной ссылке не работают

Тема в разделе "Другие языки", создана пользователем ripnostos, 5 ноя 2013.

Модераторы: Цукер
  1. ripnostos

    ripnostos Создатель

    Регистр.:
    18 ноя 2007
    Сообщения:
    46
    Симпатии:
    4
    Очень нужна помощь. Хочу добавить для ссылки событие в Яндекс.Метрике, чтобы при нажатии на нее фиксировалась цель. В качестве цели выбрано Добавить в избранное. Вот как это реализовал я:

    Код:
    <a href="http://url/" onclick="yaCounter1XXXXXX5.reachGoal('nazvanie-sobytiya'); return true;" onclick="window.external.AddFavorite('http://url/', 'Название страницы'); return false;" rel="sidebar">В Избранное</a>
    Пытался компилировать из кодов как в помощи Яндекса по Метрике: http://help.yandex.ru/metrika/objects/reachgoal.xml#reachgoal И собственно добавления в избранное. В итоге цель в Метрике фиксируется, а вот добавление в избранное как-то коряво добавляет, в частности пропадает Название сайта. Как можно переделать код, чтобы срабатывали оба условия?

    Пока нашел, что может из-за того, что два return, но я чайник в этом деле, а как можно закрыть, если там параметры разные?

    Плиз для полного чайника.
     
  2. ZOLK

    ZOLK

    Регистр.:
    13 сен 2011
    Сообщения:
    189
    Симпатии:
    108
    Это харкор конечно )), но может так:
    Код:
    <script>
    function forclick(){
    Function1();
    Function2();
    }
    
    function Function1() {
        yaCounter1XXXXXX5.reachGoal('nazvanie-sobytiya');
        return true;
    }
    function Function2() {
        window.external.AddFavorite('http://url/', 'Название страницы');
        return false;
    }
    </script>
    <a href="http://url/" onclick="forclick()" rel="sidebar">В Избранное</a>
    
     
    Последнее редактирование: 5 ноя 2013
    ripnostos нравится это.
  3. ripnostos

    ripnostos Создатель

    Регистр.:
    18 ноя 2007
    Сообщения:
    46
    Симпатии:
    4
    Спасибо. Первый ваш вариант (до этого который тут был) мне не подошел. А можно, чтобы поменьше скриптов?
     
  4. ZOLK

    ZOLK

    Регистр.:
    13 сен 2011
    Сообщения:
    189
    Симпатии:
    108
    Можно так еще попробовать, добавит в избранное для эксплорера и фокса. Опять же без JavaScript не обойтись.

    Код:
    <a href="http://url/" onclick="yaCounter1XXXXXX5.reachGoal('nazvanie-sobytiya'); AddToFavorites(); return true;" rel="sidebar">В Избранное</a>
    
    <script type="text/javascript">
            function AddToFavorites() {
                if (window.sidebar) {        // Firefox
                    window.sidebar.addPanel('http://url/', 'Название страницы', '');
                }
                else {
                    if (window.external && ('AddFavorite' in window.external)) {
                            // Internet Explorer
                        window.external.AddFavorite('http://url/', 'Название страницы');
                    }
                    else {  // Opera, Google Chrome and Safari
                        alert ("Your browser doesn't support this example!");
                    }
                }
            }
    </script>
     
  5. ripnostos

    ripnostos Создатель

    Регистр.:
    18 ноя 2007
    Сообщения:
    46
    Симпатии:
    4
    Просто мой самый верхний пример в Опере все же добавляется сайт в избранное правда без названия, просто урл. Может это как-то в примерах ниже обыграть можно, типа универсального кода?
     
  6. ZOLK

    ZOLK

    Регистр.:
    13 сен 2011
    Сообщения:
    189
    Симпатии:
    108
    Вот рабочий, в хроме напишет нажмите ctrl+d что бы добавить в избранное, в опере тоже работает

    Код:
    <a href="#" onclick="add_favorite(); yaCounter1XXXXXX5.reachGoal('nazvanie-sobytiya'); return true;" rel="sidebar">В Избранное</a>
    
    <script type="text/javascript">
    // Добавить в Избранное
    function add_favorite(a) {
      title=document.title;
      url=document.location;
      try {
        // Internet Explorer
        window.external.AddFavorite(url, title);
      }
      catch (e) {
        try {
          // Mozilla
          window.sidebar.addPanel(title, url, "");
        }
        catch (e) {
          // Opera
          if (typeof(opera)=="object") {
            a.rel="sidebar";
            a.title=title;
            a.url=url;
            return true;
          }
          else {
            // Unknown
            alert('Нажмите Ctrl-D чтобы добавить страницу в закладки');
          }
        }
      }
      return false;
    }
    </script>
     
    ripnostos нравится это.
  7. ripnostos

    ripnostos Создатель

    Регистр.:
    18 ноя 2007
    Сообщения:
    46
    Симпатии:
    4
    Спасибо. Вот по последнему коду вопрос. Я так понял он фиксирует текущие урл и тайтл страницы, которые добавляются в закладки. А если в качестве урла я хочу взять определенный урл своего сайта (пусть для примера будет http://url/) и определенный заголовок (пусть будет для примера: Название страницы). Как тогда нужно модифицировать искомый код?
     
  8. ZOLK

    ZOLK

    Регистр.:
    13 сен 2011
    Сообщения:
    189
    Симпатии:
    108
    Название задается в title, url в href=""
    Код:
    <a href="http://url/" onclick="add_favorite(); yaCounter1XXXXXX5.reachGoal('nazvanie-sobytiya'); return true;" title="Название" rel="sidebar">В Избранное</a>
     
    kurya4iy и ripnostos нравится это.
  9. ripnostos

    ripnostos Создатель

    Регистр.:
    18 ноя 2007
    Сообщения:
    46
    Симпатии:
    4
    Хорошо попробую как оно получится. Спасибо за помощь.
     
  10. aurora2000

    aurora2000 Постоялец

    Регистр.:
    24 авг 2014
    Сообщения:
    77
    Симпатии:
    24
    <a href="http://url/" onclick="yaCounter1XXXXXX5.reachGoal('nazvanie-sobytiya'); window.external.AddFavorite('http://url/', 'Название страницы');" rel="sidebar">В Избранное</a>