Вам придется использовать фреймы и URL-адреса хешей, если вы хотите поддерживать не-HTML5 браузеры.Я бы использовал старомодный набор фреймов.(Я не могу поверить, что на самом деле предлагаю набор фреймов. Это считается плохой практикой, и я не писал подобный код, вероятно, в течение 11 лет, но в этом случае это действительно кажется правильным решением. Вы могли бы использовать iframes, но я думаю, что на самом деле набор фреймов имеет больше смысла.)
<frameset border="0" rows="*,100">
<frame src="/mainPage" id="content" />
<frame src="/footer" id="footer" />
</frameset>
Используйте Ben Alman плагин hashchange и используйте такой скрипт для управлениянавигация по страницам:
$(function () {
$("frame").load(function () {
document.title = w.document.title;
var links = $("a[href]", this.contentWindow.document);
links.attr("target", "_top");
links.click(function (e) {
if (this.hostname == location.hostname) {
e.preventDefault();
var path = this.pathname.replace(/^[^\/]/, "$&/");
location.hash = "#" + path + this.search + this.hash;
}
});
});
var w = $("#content")[0].contentWindow;
$(window).hashchange(function () {
var hash = location.hash.substr(1) || "/mainPage";
var contentLoc = w.location.pathname + w.location.search + w.location.hash;
if (hash.toLowerCase() != contentLoc.toLowerCase()) {
w.location.replace(hash);
}
}).trigger("hashchange");
});
Демонстрация: http://jumpingfishes.com/framed/
В качестве альтернативы фреймам вы можете использовать AJAX для перезагрузки содержимого, но фреймы могут быть быстрее реализованы.