1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - новый и перспективный форумный движок от бывших создателей vBulletin.

1.1.3 Текущий адрес URL страницы

Тема в разделе "Основные вопросы по XenForo", создана пользователем Mike, 24 июн 2012.

Загрузка
  1. Mike

    Mike Местный

    Регистрация:
    30.11.11
    Сообщения:
    146
    Симпатии:
    3
    Версия XF:
    1.1.0 Final
    Здравствуйте.

    Код :

    Код:
    Текущий URL адрес страницы :
    <br><script type="text/javascript">
    <!--
    document.write(location.href);
    // -->
    </script>
    
    Отображает текущий адрес страницы. Везде работает нормально, но в нашем случае включен ЧПУ с русскими буквами и при отображении пишет фигню : http://target/threads/%D0%A0%D0%B0%D0%B7%D0%BD%D1%8B%D0%B5-

    Как спастись? :) Чтобы нормальные русские буквы отображались?
     
  2. maus

    maus Местный

    Регистрация:
    27.03.12
    Сообщения:
    187
    Симпатии:
    128
    decodeURI(location.href)
     
    Mike нравится это.
  3. Mike

    Mike Местный

    Регистрация:
    30.11.11
    Сообщения:
    146
    Симпатии:
    3
    Версия XF:
    1.1.0 Final
    Если вы имеете ввиду заменить этим кодом строчку : document.write(location.href);
    То не получается. :confused: Если честно, в таких тэгах ничего не понимаю, ткните пожалуйста как правильно?
     
  4. Skrimm

    Skrimm Активный пользователь

    Регистрация:
    23.06.12
    Сообщения:
    151
    Симпатии:
    38
    Версия XF:
    1.1.4
    Эти крокозябры это русский текст можно отключить название тем в адресе страницы в меню управления пройти Главная/настройки/Оптимизация для поисковых систем (SEO)-Включать заголовок страницы в URL снять галочку потом станет так http://www.xf-russia.ru/forum/threads/5/

    PS и вообще зачем нужны названия тем в адресной строке-толку
     
  5. Mike

    Mike Местный

    Регистрация:
    30.11.11
    Сообщения:
    146
    Симпатии:
    3
    Версия XF:
    1.1.0 Final
    Вопрос зачем отдельный, этой темы не касается. Это SEO. Плюсы и минусы этих дел не хотелось бы здесь обсуждать, каждый решает для себя сам в силу своего опыта.
    Мне важно решить существующий вопрос, чтобы хотя бы на странице тем, таким способом отображались русские буквы названия темы (url) за место иероглифов.
     
  6. Mike

    Mike Местный

    Регистрация:
    30.11.11
    Сообщения:
    146
    Симпатии:
    3
    Версия XF:
    1.1.0 Final
    Разобрался вроде, вот так правильно :
    Код:
    <script type="text/javascript">
      <!--
      document.write(decodeURI(window.location.href));
      // -->
    </script>
    Спасибо за подсказку! :)

    <input type="text" value="КАК БЫ ТЕПЕРЬ СЮДА ЭТОТ URL ЗАСУНУТЬ??" /> :) А рядом еще и кнопочку [Скопировать] :)
     
  7. maus

    maus Местный

    Регистрация:
    27.03.12
    Сообщения:
    187
    Симпатии:
    128
    Я ответил исходя из того что вы знаете, что делаете :-(
    Через document.write такое делать не надо, во-первых это замедляет загрузку страницы, а во-вторых небезопасно без дополнительного экранирования. Можно использовать jquery:
    Вот этот скрипт в конец перед закрытием тега script:
    Код:
    $(function() {
    	$('span').append($('<input value="uninitialized" />').val(decodeURI(window.location.href)).click(function() { $(this).select(); }))
    });
    А вот такой html - в любое место, где требуется input:
    Код:
    <span class="url_input"></span>
    Атрибуты можно настроить, меняя определение этого input-а в куске скрипта выше (не забывайте только экранировать одинарные кавычки вот так: \'
    Просто кнопку "скопировать" нормально сделать не получится - современные браузеры из целей безопасности запрещают это делать. Если очень нужно, можно реализовать через флэш, но это достаточно кривое решение. В данном случае я просто сделал так, что при любом щелчке по input-у со ссылкой его содержимое выделяется целиком, так что пользователю остается его только скопировать. Ну и плюс пустые input-ы не будут видны при загрузке страницы.
     
    Mike нравится это.
  8. Mike

    Mike Местный

    Регистрация:
    30.11.11
    Сообщения:
    146
    Симпатии:
    3
    Версия XF:
    1.1.0 Final
    Огромнейшее спасибо! Все работает, но 'span' этот распространяется на все спаны на странице и их очень много получается, эта функция работает на них тоже и эта фича срабатывает для всех спанов на странице. :) Как сделать так, чтобы эта фишка отображалась только 1 раз на странице в нужном мне месте? :)

    И еще, чтобы поле 'input-value-щное' было во всю длину URL-а? А то сейчас, 3 сантиметра где-то видимо по-умолчанию..
     
  9. maus

    maus Местный

    Регистрация:
    27.03.12
    Сообщения:
    187
    Симпатии:
    128
    Вот что недосыпание с людьми делают. Исправленный вариант:
    Код:
    $(function() {
    	var uri = decodeURI(window.location.href);
    	$('span.currenturl').append($('<input />').val(uri).attr("size", uri.length).click(function() { $(this).select(); }))
    });
    Привязывается теперь не к span, а к span с классом currenturl (а вообще там можно любой css-селектор). И растягивается на длину url-а.
     
    Mike нравится это.

Поделиться этой страницей