diff options
Diffstat (limited to 'theme/javascript/core')
-rwxr-xr-x | theme/javascript/core/navigation.js | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/theme/javascript/core/navigation.js b/theme/javascript/core/navigation.js index e2ae5bc..c1766ab 100755 --- a/theme/javascript/core/navigation.js +++ b/theme/javascript/core/navigation.js @@ -35,13 +35,25 @@ define([ var $pageHead = $page.find("[data-element=head]"); var $pageBody = $page.find('.book'); + //// // Merge heads - var headContent = $pageHead.html() + // !! Warning !!: we only update necessary portions to avoid strange behavior (page flickering etc ...) + //// - $("head style").each(function() { - headContent = headContent + this.outerHTML - }); - $("head").html(headContent); + // Update title + document.title = $pageHead.find("title").text(); + + // Reference to $("head"); + var $head = $("head"); + + // Update next & prev <link> tags + // Remove old + $head.find("link[rel=prev]").remove(); + $head.find("link[rel=next]").remove(); + + // Add new next * prev <link> tags + $head.append($pageHead.find("link[rel=prev]")); + $head.append($pageHead.find("link[rel=next]")); // Merge body var bodyClass = $(".book").attr("class"); @@ -93,7 +105,19 @@ define([ events.trigger("page.change"); }; + var isLeftClickEvent = function (e) { + return e.button === 0; + }; + + var isModifiedEvent = function (e) { + return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey); + }; + var handlePagination = function (e) { + if (isModifiedEvent(e) || !isLeftClickEvent(e)) { + return; + } + e.stopPropagation(); e.preventDefault(); |