За последние 24 часа нас посетили 21163 программиста и 1700 роботов. Сейчас ищет 1571 программист ...

Феномен с document.location.href

Тема в разделе "JavaScript и AJAX", создана пользователем Arhitec, 6 сен 2018.

  1. Arhitec

    Arhitec Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    43
    Симпатии:
    1
    Доброго всем дня!

    В одной переменной записан адрес текущей страницы
    Код (Javascript):
    1. var thisPage = document.location.href; // http://arc.rob.ru дает адрес текущей страницы
    в др. переменной записан точно такой же адрес
    Код (Javascript):
    1. value.url = 'http://arc.rob.ru';
    Почему при сравнении этих двух переменных не дает 'true'?
    Код (Javascript):
    1. if(value.url == thisPage){ console.log('Значения одинаковые');}
    Заметил вот что, если выводить в консоль оба значения, то они становятся ссылками. Так вот на одну нажимаю и попадаю на тот адрес, который указан в ссылке, а вторую нажимаю и попадаю в консоли в самое начало листинга той же самой страницы.
    Полагаю причина в типах переменных, но не знаю как исправить эту ошибку. Прошу о помощи, спасибо!
     
  2. villiwalla

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

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    Скорей всего ты косячишь, выведи обе переменные в консоль.

    Снимок экрана от 2018-09-06 11-20-07.png

    Снимок экрана от 2018-09-06 11-21-50.png
     
    Arhitec нравится это.
  3. Arhitec

    Arhitec Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    43
    Симпатии:
    1
    В том то и дело, что в консоль я уже все вывел и там абсолютно одинаковые данные.
    Причем что интересно на др. адресе все работает, а на этом не хочет. Может быть причина в том, что домен третьего уровня?

    Листинг консоли:
    Код (Text):
    1. Текущая страница: http://architec.3440.aqq.ru/
    2.  
    3. aw-leftconsole.js:18 Главная
    4. http://architec.3440.aqq.ru / http://architec.3440.aqq.ru/
    5.  
    6. aw-leftconsole.js:18 Заказы
    7. / http://architec.3440.aqq.ru/
    8.  
    9. aw-leftconsole.js:18 Список заказов
    10. http://architec.3440.aqq.ru/aw-engine/aw-login/ / http://architec.3440.aqq.ru/
    11.  
    12. aw-leftconsole.js:18 История платежей
    13. http://architec.3440.aqq.ru/aw-engine/aw-login/ / http://architec.3440.aqq.ru/
    14.  
    15. aw-leftconsole.js:18 Выход
    16. http://architec.3440.aqq.ru/aw-engine/aw-login/aw-logout.php / http://architec.3440.aqq.ru/
    В частности меня интересует значение к пункту "Главная". Если переменные равны, то пункт выделить др. цветом.
     
  4. lastdays

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

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    Код (Javascript):
    1. <script>
    2. function this_url()
    3. {
    4.     var loc = window.location;
    5.     var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/') + 1);
    6.     return loc.href.substring(0, loc.href.length - ((loc.pathname + loc.search + loc.hash).length - pathName.length));
    7. }
    8.  
    9. var this_url = this_url(), d = document;
    10.  
    11. var url_array = ['http://localhost/', 'http://localtest2/', 'http://localtest1/', 'http://localtest3/'];
    12.  
    13. for ( u in url_array )
    14. {
    15.   d.write ( '<div style="color:'+(url_array[u] == this_url ? 'red' : '' )+'">'+url_array[u]+'</div>' );
    16. }
    17. </script>
    Можешь и свое доменное имя подставить.

    Вообще, твой thisPage может содержать и параметры, и слеш на конце, поэтому сравнение и не проходит.
    Объяснил бы задачу вообще и как сейчас процесс происходит.
     
    Arhitec нравится это.
  5. villiwalla

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

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    Снимок экрана от 2018-09-06 11-32-43.png
    Чувствуешь разницу?
     
    Arhitec нравится это.
  6. Arhitec

    Arhitec Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    43
    Симпатии:
    1
    Хотел коротко, чтобы не отнимать лишними данными время у людей :)
    Задача проста, у меня в MYSQL есть список пунктов меню. Каждый пункт выводится через JS. Если пункт имеет ту же ссылку, что и адрес текущей страницы, значит он активен и его нужно выделить другим стилем.
    --- Добавлено ---
    Конечно, т.е. в одной из переменных есть \n или что-то еще?
    Вот я туплю, там же слэш стоит... Но у меня то его нет и в листинге видно, что одинаковые ссылки
     
  7. villiwalla

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

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    Где ты там перенос строки увидел? Смотри внимательно, по символьно сравнивай, если в глаза не бросается!
    --- Добавлено ---
    Твой же пример:
    Код (Javascript):
    1. aw-leftconsole.js:18 Главная
    2. http://architec.3440.aqq.ru / http://architec.3440.aqq.ru/
     
    Arhitec нравится это.
  8. Arhitec

    Arhitec Новичок

    С нами с:
    13 июл 2016
    Сообщения:
    43
    Симпатии:
    1
    Вот это я СТУПИЛ, РУКОЖОПЫЙ :)
    Выходит зря только народ баламучу :)))))
    --- Добавлено ---
    Братцы, все заработало!!!!!
    Я прошу прощения :) И огромное спасибо за помощь!