|
|
@ -212,39 +212,24 @@ var PageView = function(container, content, id, width, height, |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
function setupLinks(canvas, content, scale) { |
|
|
|
function setupLinks(canvas, content, scale) { |
|
|
|
var links = content.getLinks(); |
|
|
|
function bindLink(link, dest) { |
|
|
|
var currentLink = null; |
|
|
|
if (dest) { |
|
|
|
if (links.length > 0) { |
|
|
|
link.onclick = function() { |
|
|
|
canvas.addEventListener('mousemove', function(e) { |
|
|
|
PDFView.navigateTo(dest); |
|
|
|
var x = e.pageX; |
|
|
|
return false; |
|
|
|
var y = e.pageY; |
|
|
|
}; |
|
|
|
for (var p = canvas; p; p = p.offsetParent) { |
|
|
|
|
|
|
|
x -= p.offsetLeft; |
|
|
|
|
|
|
|
y -= p.offsetTop; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
x /= scale; |
|
|
|
|
|
|
|
y /= scale; |
|
|
|
|
|
|
|
var i, n = links.length; |
|
|
|
|
|
|
|
for (i = 0; i < n; i++) { |
|
|
|
|
|
|
|
var link = links[i]; |
|
|
|
|
|
|
|
if (link.x <= x && link.y <= y && |
|
|
|
|
|
|
|
x < link.x + link.width && y < link.y + link.height) { |
|
|
|
|
|
|
|
currentLink = link; |
|
|
|
|
|
|
|
canvas.style.cursor = 'pointer'; |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
currentLink = null; |
|
|
|
var links = content.getLinks(); |
|
|
|
canvas.style.cursor = 'default'; |
|
|
|
for (var i = 0; i < links.length; i++) { |
|
|
|
}, false); |
|
|
|
var link = document.createElement('a'); |
|
|
|
canvas.addEventListener('mousedown', function(e) { |
|
|
|
link.style.left = Math.floor(links[i].x * scale) + 'px'; |
|
|
|
if (!currentLink) |
|
|
|
link.style.top = Math.floor(links[i].y * scale) + 'px'; |
|
|
|
return; |
|
|
|
link.style.width = Math.ceil(links[i].width * scale) + 'px'; |
|
|
|
if (currentLink.url) |
|
|
|
link.style.height = Math.ceil(links[i].height * scale) + 'px'; |
|
|
|
window.location.href = currentLink.url; |
|
|
|
link.href = links[i].url || ''; |
|
|
|
if (currentLink.dest) |
|
|
|
bindLink(link, links[i].dest); |
|
|
|
navigateTo(currentLink.dest); |
|
|
|
div.appendChild(link); |
|
|
|
}, false); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|