почему window.location.href исключает значение ha sh - PullRequest
0 голосов
/ 18 марта 2020

У меня есть проблема, с которой я сталкиваюсь прямо сейчас.

console.log('location.href', window.location.href);

Я получаю только location.href – "https://my.domain.here.com/expertise/referenzen/#"

, но URL в браузере читает location.href – "https://my.domain.here.com/expertise/referenzen/#produktion-mittelstaendischer-hersteller".

я даже пошел вперед и зарегистрировал window.location

[Log] Location (tb_custom.js, line 19)

ancestorOrigins: DOMStringList {length: 0, item: function, contains: function}

assign: function()

hash: "#produktion-mittelstaendischer-hersteller"

host: "my.domain.here.com"

hostname: "my.domain.here.com"

href: "https://my.domain.here.com/expertise/referenzen/#produktion-mittelstaendischer-hersteller"

origin: "https://my.domain.here.com"

pathname: "/expertise/referenzen/"

port: ""

protocol: "https:"

reload: function()

replace: function()

search: ""

toString: function()

valueOf: function()

Symbol(Symbol.toPrimitive): undefined

Location Prototype

Я могу получить значение для window.location.pathname и другие вещи там, кроме значения ha sh, даже когда Я звоню href. URL идет без значения ha sh.

Почему это происходит?

Обновление : я заметил еще одну вещь: значение ha sh будет отображаться, если значение anchor / ha sh отсутствует на странице, следовательно, оно не будет прокрутите вниз, где якорь. Я подозреваю, что это может быть связано с проблемой, но я не знаю, почему, следовательно, пока не могу придумать лекарство.

1 Ответ

0 голосов
/ 19 марта 2020

Хорошо, я потратил некоторое время на это, пытаясь понять, что происходит, и кажется, что к тому времени, когда я пытаюсь получить значение ha sh, его нет, и скрипт делает что-то еще. поэтому я должен был создать al oop, добавить простую задержку или тайм-аут и подождать, пока не появится значение для location.ha sh. Вот код, который я использую для этого

var $j = jQuery.noConflict();
$j(document).ready(function () {

    let current_hash_value = location.hash;

    let check = function () {
        setTimeout(function () {
            if (current_hash_value === null) {

                check();
            } else {
                var hash_value_after_wait = window.location.hash;
                $j(hash_value_after_wait).trigger("click"); //just to click and open accordion
                console.log(hash_value_after_wait);
            }
        }, 500);
    };
    check();
});

Надеюсь, это поможет кому-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...