Вызов окна, простой вопрос

Тема в разделе "JavaScript", создана пользователем Obormot, 4 мар 2015.

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

    Obormot Постоялец

    Регистр.:
    10 янв 2012
    Сообщения:
    88
    Симпатии:
    2
    Добрый день!

    В Wordpress всплывающее окно форму обратной связы вызывается так:

    Код:
    <a id="contacthorm_fancybox_54f63944d9f4a" class="iphorm-fancybox-link iphorm-fancybox-link-1" href="#">Сменить на текст или HTML для переключения всплывающего окна</a>
    Те. через ID.

    Мне требуется ее вызвать из ссылки в меню, дело в том, при создании ссылки меню можно вставить только URL (через админку).

    Подскажите как можно решить этот вопрос?
     
  2. candro333

    candro333

    Регистр.:
    29 мар 2013
    Сообщения:
    258
    Симпатии:
    42
    В самом шаблоне поставь эту ссылку или же в настройках меню в php файле (какой сказать точно не могу, но наверно functions).
     
  3. Obormot

    Obormot Постоялец

    Регистр.:
    10 янв 2012
    Сообщения:
    88
    Симпатии:
    2
    А есть альтернативные методы? Допустим вызывать из ссылки какойнить посто js, который будет далее цеплять уже окно это?

    Дело в том, что ее еще необходимо вставить в модуль Life Composser, а он динамически создает блоки на странице, подозреваю что туда ее впихнуть прямо очень геморойно (
     
  4. candro333

    candro333

    Регистр.:
    29 мар 2013
    Сообщения:
    258
    Симпатии:
    42
    Что то похожее делал для себя:
    HTML:
    <div id="wrap">
    <a class="block1">block</a>
    </div>
       
    Код:
    wrap=document.querySelector("#wrap") // это класс меню чтоб не трогал другие ссылки
    ;(function(){
       var re=/<a.*block1.*\/a>/, // это пункт меню, который нужно заменить. Его редактируешь под себя
           block=wrap.innerHTML,
           block=block.replace(re, "<a class='block2'>block2</a>") // чем заменяем
           wrap.innerHTML=block
    })()
    
    Как то так
     
    Obormot нравится это.
  5. Absolute

    Absolute Крокодил ;)

    Регистр.:
    9 авг 2009
    Сообщения:
    373
    Симпатии:
    188
    Код:
      <script type="text/javascript">
        $(document).ready(function() {
    $("a[href^='/your_link']").attr({'id':'contacthorm_fancybox_54f63944d9f4a', 'href':'#'}).text('Твой текст');
          });
    </script>
     
    Obormot нравится это.
  6. Obormot

    Obormot Постоялец

    Регистр.:
    10 янв 2012
    Сообщения:
    88
    Симпатии:
    2
    Друзья, спасибо за советы, но по всей видимости я совсем нуб)

    Подключаю последний скрипт в шапку, далее делаю ссылку в меню "your_link", нажимаю - не срабатывает.

    Если на страницу вставляю ссылку
    <a id="contacthorm_fancybox_54f63944d9f4a" class="iphorm-fancybox-link iphorm-fancybox-link-1" href="#">Сменить на текст или HTML для переключения всплывающего окна</a> - срабатывает.

    Может WP обрабатывает ссылки через реврайт, поэтому?
     
  7. Absolute

    Absolute Крокодил ;)

    Регистр.:
    9 авг 2009
    Сообщения:
    373
    Симпатии:
    188
    После JQuery нужно подключать.
    Чтобы уж наверняка:
    Код:
    $("a[href*='your_link']").attr({'id':'contacthorm_fancybox_54f63944d9f4a', 'href':'#'}).addClass('iphorm-fancybox-link iphorm-fancybox-link-1').text('Твой текст');
     
    Obormot нравится это.
  8. Obormot

    Obormot Постоялец

    Регистр.:
    10 янв 2012
    Сообщения:
    88
    Симпатии:
    2
    При вызове
    http://site.ru/your_link
    404 все-равно :(. Даже отключил реврайт урл в настройках ворд пресса.

    Скрипт точно после jQuery подключен.
     
  9. Absolute

    Absolute Крокодил ;)

    Регистр.:
    9 авг 2009
    Сообщения:
    373
    Симпатии:
    188
    Что вы прицепились к этому "your_link" там может что угодно стоять. Создали пункт меню, посмотрели его ссылку, допустим http://site.ru/?page_id=2 и сделали вот так:
    Код:
      <script type="text/javascript">
        $(document).ready(function() {
    $("a[href*='page_id=2']").attr({'id':'contacthorm_fancybox_54f63944d9f4a', 'href':'#'}).addClass('iphorm-fancybox-link iphorm-fancybox-link-1').text('Твой текст');
          });
    </script>
    Всё. Вставили код в шаблон. Если не работает - убедитесь, что код стоит после jQuery, нажав CTRL+U.