Подтвердить что ты не робот

Как перейти к hashtag после загрузки страницы?

Я хочу сделать обратное тому, что я нашел до сих пор. Я устанавливаю много высот с помощью js, и я хочу перейти к хэштегу в URL-адресе после загрузки страницы. Я предполагаю, что это просто, но я не вижу очевидного ответа... например, проверьте здесь...

http://alavita.rizenclients.com/#story

Попытался использовать этот код...

$(window).load(function() {
    var hashTag = window.location.hash;
    window.location = '/' + hashTag;
}); 

фактически не приводит меня в начало раздела с тегами...

4b9b3361

Ответ 1

Если вы просто хотите изменить хэш после загрузки страницы:

window.onload = function (event) {
    window.location.hash = "#my-new-hash";
};

Если вы хотите перейти к URL-адресу с новым хешем:

window.location.href = "http://website.com/#my-new-hash";

Если вы хотите прослушать изменения хэша URL-адреса; вы можете использовать window.onhashchange событие DOM.

window.onhashchange = function () {
    if (location.hash === "#expected-hash") {
        doSomething();
    }
};

Но он не поддерживается всеми крупными браузерами. Теперь он имеет широкую поддержку браузера. Вы также можете проверить изменения, опросив window.location.hash на малых интервалах, но это также не очень эффективно.

Для кросс-браузерного решения; Я бы предложил Ben Alman jQuery hashchange plugin, который объединяет эти методы и несколько других с резервным механизмом.

EDIT: после вашего обновления вопроса, я понимаю, что вы хотите, чтобы страница прокручивалась до закладки?:

Вы можете использовать метод Element.scrollTop или jQuery $.scrollTop().

$(document).ready(function (event) {
    var yOffset = $("#my-element").offset().top;
    $("body").scrollTop(yOffset);
});

См. документацию здесь.

Ответ 2

Вы можете просто установить текущее местоположение:

window.location = 'http://alavita.rizenclients.com/#story';

Или установите хэш (если он еще не установлен), перезагрузите его:

window.location.hash = hashTag;
window.location=window.location.href;

Ответ 3

Вы изменили свой вопрос.

Проверьте это решение. fooobar.com/info/69569/..., чтобы вы поняли, что происходит, и как реализовать решение перекрестного браузера.

ВНИМАНИЕ: внизу он упоминает плагин jquery, который будет делать то, что вам нужно.

http://benalman.com/projects/jquery-hashchange-plugin/

Этот плагин позволит вам сделать что-то вроде этого. Это будет работать для вашей текущей страницы. Но вы можете изменить его, чтобы быть более надежным.

$(function(){

    // Bind the event.
    $(window).hashchange( function(){
        // get the hash
        var hash = window.location.hash;
        // click for your animation
        $('a[href=' + hash + ']').click();
    })

    // Trigger the event (useful on page load).
    $(window).hashchange();

});