From c91188dc1b7a31b742ddb02b20487b9412df38cf Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Wed, 28 Apr 2010 09:45:31 -0400 Subject: [PATCH] Handling in-page anchor links gracefully and correctly. --- media/js/newsblur/reader.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/media/js/newsblur/reader.js b/media/js/newsblur/reader.js index 49c79d573..c68eb1b0c 100644 --- a/media/js/newsblur/reader.js +++ b/media/js/newsblur/reader.js @@ -811,6 +811,7 @@ var $story_iframe = this.$story_iframe; var $taskbar_view_page = $('.NB-taskbar .task_view_page'); var $taskbar_return = $('.NB-taskbar .task_return'); + this.flags.iframe_view_loaded = false; if (!feed_id) { feed_id = $story_iframe.data('feed_id'); @@ -871,7 +872,21 @@ try { $story_iframe.contents().find('a') .unbind('click.NB-taskbar') - .bind('click.NB-taskbar', function() { + .bind('click.NB-taskbar', function(e) { + var href = $(this).attr('href'); + if (href.indexOf('#') == 0) { + e.preventDefault(); + var $footnote = $('a[name='+href.substr(1)+'], [id='+href.substr(1)+']', + $story_iframe.contents()); + // NEWSBLUR.log(['Footnote', $footnote, href, href.substr(1)]); + $story_iframe.contents().scrollTo($footnote, 600, { + axis: 'y', + easing: 'easeInOutQuint', + offset: 0, + queue: false + }); + return false; + } self.taskbar_show_return_to_page(); }); self.$story_iframe.contents()