summaryrefslogtreecommitdiffstats
path: root/theme/javascript/core
diff options
context:
space:
mode:
Diffstat (limited to 'theme/javascript/core')
-rwxr-xr-xtheme/javascript/core/navigation.js34
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();