загрузить содержимое URL-адреса хэштега

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

Например: если я обновляю #content 2, он показывает #content 1. Я этого не хочу. Я думаю, что я должен использовать событие загрузки. Но не знаю, как реализовать здесь. Любое решение для этого? Помогите пожалуйста мне.


person user1619228    schedule 09.09.2012    source источник


Ответы (2)


Я ответил на это в Создайте URL-адрес хэштега с помощью jquery. Просто поделился этим здесь, потому что связанная ветка изначально была посвящена только обновлению URL-адреса с помощью хэш-тега (на самом деле идентификатора фрагмента), но та же проблема с сохранением контента после перезагрузки в конечном итоге была поднята ОП в этом потоке.

А для тех, кто не хочет делать лишний клик, коды довольно просты. Просто добавьте следующее после function setActive(i) { // codes }:

        var url = window.location.hash; // retrieve current hash value
        if(url.indexOf('Content') != -1){ // do the following if URL's hash contains "Content"
            // remove "#" symbol from retrieved hash value
            var currentHash = window.location.hash.substring(1).split("#");
            // remove "-" symbol from retrieved hash value
            var contentTitle = currentHash.toString().replace(/-/g, ' ');
            // store hash value in "actualContent" variable
            var actualContent = "This is " + contentTitle;
            // remove "selected" for every instance of "myclass" to hide content first
            $(".myclass").removeClass("selected");
            // find div that contains retrieved hash value's text stored in "actualContent" variable and add "selected" class to that div to display the correct content
            $("div:contains('" + actualContent + "')").addClass("selected");
        }
person vynx    schedule 09.09.2012

Если вы хотите, чтобы ваш выбор запоминался на всех страницах, вам нужно где-то сохранить выбор на сеансе/сервере. Перезагрузка страницы запускает ваш скрипт с нуля, если вы хотите предварительно выбрать что-то, что вам нужно, чтобы вернуть данные из сеанса.

Другой вариант - использовать javascript для записи выбора в файл cookie и прочитать этот файл cookie, чтобы установить первоначальный выбор.

Вы можете узнать об использовании файлов cookie здесь. В примере используется файл cookie для хранения имени пользователя, но вы можете использовать его, например, для хранения переменной 'content_selection'. Затем, когда ваша страница загружается, прочитайте значение файла cookie и используйте его для выбора правильного начального содержимого.

person Asciiom    schedule 09.09.2012