Эй, ребята, я не уверен, можно ли это сделать или нет, но мне просто любопытно.
это мой код, и мне было интересно, может ли он работать теоретически ...
//------------------------------------------------------------------
// 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 на обновление страницы (из соображений закладки)