diff --git a/share/pdf2htmlEX.js b/share/pdf2htmlEX.js index 5f9f339..d3edd1a 100644 --- a/share/pdf2htmlEX.js +++ b/share/pdf2htmlEX.js @@ -30,7 +30,7 @@ var pdf2htmlEX = (function(){ ,ctm[1] * pos[0] + ctm[3] * pos[1] + ctm[5]]; }; var Page = function(page, container) { - if(page == undefined) return undefined; + if(page == undefined) return; this.p = $(page); this.n = parseInt(this.p.attr('data-page-no'), 16); @@ -241,18 +241,24 @@ var pdf2htmlEX = (function(){ get_containing_page : function(obj) { /* get the page obj containing obj */ - return this.pages[(new Page(obj.closest('.p')[0])).n]; + var p = obj.closest('.p')[0]; + return p && this.pages[(new Page(p).n]; }, link_handler : function (e) { var _ = e.data; var t = $(e.currentTarget); - var cur_page = _.get_containing_page(t); - if(cur_page == undefined) return; - var cur_pos = cur_page.position(); - //get the coordinates in default user system - cur_pos = transform(cur_page.ictm, [cur_pos[0], cur_page.height()-cur_pos[1]]); + var cur_pos = [0,0]; + + // cur_page might be undefined, e.g. from Outline + var cur_page = _.get_containing_page(t); + if(cur_page != undefined) + { + cur_pos = cur_page.position(); + //get the coordinates in default user system + cur_pos = transform(cur_page.ictm, [cur_pos[0], cur_page.height()-cur_pos[1]]); + } var detail_str = t.attr('data-dest-detail'); if(detail_str == undefined) return; @@ -294,9 +300,6 @@ var pdf2htmlEX = (function(){ upside_down = false; ok = true; break; - pos = [0,0]; - ok = true; - break; default: ok = false; break;