hashchange с attr ('id'), но загружает контент из attr ('href'), используя jquery - PullRequest
0 голосов
/ 28 января 2011

Эй, ребята, я не уверен, можно ли это сделать или нет, но мне просто любопытно.

это мой код, и мне было интересно, может ли он работать теоретически ...

//------------------------------------------------------------------
// Menu links
//------------------------------------------------------------------
var newHash      = "",
uri = "",
$content = $("#main-content"),
content  = '#main-content',
$wrap    = $("#wrap"),
baseHeight   = 0,
$el;

$wrap.height($wrap.height());
baseHeight = $wrap.height() - $content.height();

$("nav a").live('click', function(){
    window.location.hash = $(this).attr("id");
    url = $(this).attr("href");
    uri = windows.location.hash;
    return false;
});
/*$("nav").delegate("a", "click", function() {
    window.location.hash = $(this).attr("href");
    console.log(window.location.hash);
    return false;
});*/

$(window).bind('hashchange', function(){
    //window.location.hash = $(this).attr("href");
    //newHash = window.location.hash.substring(1);
    u = uri.substring(1);
    console.log(u);
    if (window.location.hash = u) {
        $wrap.find("#main-content").fadeOut(200, function() {
            $wrap.load(u + " #main-content", function() {
                $content.fadeIn(function() {
                    $wrap.animate({
                        height: baseHeight + $content.height() + "px"
                    }, 500);
                });
            });
        });
    }
});
$(window).trigger('hashchange');

Текущее поведение:
- когда я загружаю www.abc.com/, URI автоматически превращается в www.abc.com/#
- когда я нажимаю на ссылку меню, он превращает URI в www.abc.com/#!/files/2
(где 2 - идентификатор пользователя, а ! / files / 2 - идентификатор ссылки)
- когда щелчок вызывается, он быстро превращается в URI в www.abc.com/file.php# который теперь просто загружает файл непосредственно с сервера без эффекта ajax загрузки содержимого со страницы, а не перехода по прямой ссылке.

В какой-то момент я успешно получил ссылку для показа в виде:

http://www.abc.com/#!/file/2 и загрузить контент из file.php, но с этим успехом я не смог обмануть браузер, чтобы увидеть URI для того, что он есть, и загрузить контент из file.php на основе URI на обновление страницы (из соображений закладки)

1 Ответ

0 голосов
/ 28 января 2011

Насколько я знаю, вызывает изменение URL-адреса в браузере (кроме хэш-хангов) загрузки новой страницы (в данном случае перезагрузка). Поэтому не должно быть возможности показывать «file.php» в строке состояния, когда вызывается #! / File / 2 ...

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