diff --git a/src/main/webapp/xnat-templates/screens/Page.vm b/src/main/webapp/xnat-templates/screens/Page.vm
index 729980183bc89bfa1daa381a0ab041c78ad3ac1b..f0e0f738bbd479fe372e0539850df39a4064ee25 100644
--- a/src/main/webapp/xnat-templates/screens/Page.vm
+++ b/src/main/webapp/xnat-templates/screens/Page.vm
@@ -37,12 +37,26 @@
 
 <script>
 
-    XNAT.app.customPage.container = $('#view-page');
-    XNAT.app.customPage.getPage();
+    (function(){
 
-    window.onhashchange = function(){
-        XNAT.app.customPage.getPage();
-    }
+        var sampleUrl = '/page/#/foo/#tab=bar/#panel=baz'
+
+        // save the value for the initial page that's loaded
+        var page = getUrlHashValue('#/', '/#');
+
+        XNAT.app.customPage.container = $('#view-page');
+        XNAT.app.customPage.getPage(['', '/#']);
+
+        $(window).on('hashchange', function(e){
+            e.preventDefault();
+            var newPage = getUrlHashValue('#/', '/#');
+            // only get a new page if the page part has changed
+            if (newPage !== page) {
+                XNAT.app.customPage.getPage([newPage, '/#']);
+            }
+        })
+
+    })();
 
 </script>