1
0
Fork 0
mirror of https://github.com/futurepress/epub.js.git synced 2025-10-03 14:59:18 +02:00

Fix bota for non-latin, fix webkit locationOf

This commit is contained in:
Fred Chasen 2017-09-11 18:59:28 -07:00
parent ac08fe0fba
commit 673e5e83dc
4 changed files with 24 additions and 19 deletions

View file

@ -1,6 +1,6 @@
{
"name": "epubjs",
"version": "0.3.50",
"version": "0.3.51",
"description": "Parse and Render Epubs",
"main": "lib/index.js",
"module": "src/index.js",

View file

@ -448,7 +448,7 @@ class Contents {
var position;
var targetPos = {"left": 0, "top": 0};
if(!this.document) return;
if(!this.document) return targetPos;
if(this.epubcfi.isCfiString(target)) {
let range = new EpubCFI(target).toRange(this.document, ignoreClass);
@ -466,17 +466,22 @@ class Contents {
if (isWebkit) {
let container = range.startContainer;
let newRange = new Range();
try {
if (container.nodeType === ELEMENT_NODE) {
position = container.getBoundingClientRect();
} else if (container.length + 2 < range.startOffset) {
} else if (range.startOffset + 2 < container.length) {
newRange.setStart(container, range.startOffset);
newRange.setEnd(container, range.startOffset + 2);
position = newRange.getBoundingClientRect();
} else {
} else if (range.startOffset - 2 > 0) {
newRange.setStart(container, range.startOffset - 2);
newRange.setEnd(container, range.startOffset);
position = newRange.getBoundingClientRect();
} else { // empty, return the parent element
position = container.parentNode.getBoundingClientRect();
}
} catch (e) {
console.error(e, e.stack);
}
} else {
position = range.getBoundingClientRect();

View file

@ -357,16 +357,16 @@ class Rendition {
*/
onResized(size){
if (this.location && this.location.start) {
// this.manager.clear();
this.display(this.location.start.cfi);
}
this.emit("resized", {
width: size.width,
height: size.height
});
if (this.location && this.location.start) {
// this.manager.clear();
this.display(this.location.start.cfi);
}
}
/**

View file

@ -279,7 +279,7 @@ export function createBase64Url(content, mime){
return;
}
data = btoa(content);
data = btoa(encodeURIComponent(content));
datauri = "data:" + mime + ";base64," + data;