Локальное хранилище не распределяется между страницами - PullRequest
0 голосов
/ 03 мая 2019

У меня есть книга epub3 с 3 страницами.Я просматриваю эту книгу в Apple's Books, их встроенном читателе epub3, на Mac OSX.Первая страница выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops">
<head>
<title>My Book</title>
<meta charset="utf-8"/>

<script>
/*<![CDATA[*/

window.addEventListener('focus', function(event) {

  var currentPage = localStorage.getItem('currentPage')
  if (currentPage == null){
     currentPage = "";
  }

  currentPage = currentPage + " 1";

  localStorage.setItem('currentPage', currentPage);
});

setInterval("myFunction()", 1000);

function myFunction() {
    var t = document.getElementById("currentPage");

    var currentPage = localStorage.getItem('currentPage');
    if (currentPage == null){
       currentPage = "";
    }

    t.innerHTML = currentPage;
}


/*]]>*/
</script> 

</head>

<body> 
<h1> Page 1</h1>

<div id = "currentPage"></div> 

</body> 
</html>

И на последующих страницах используется один и тот же шаблон.

Итак, когда я открываю книгу, открыв ее ранее, на каждой странице отображается одно и то же значение, дляпример:

Page 1: 1 2 1 2 3 
Page 2: 1 2 1 2 3 
Page 3: 1 2 1 2 3 

Однако, когда я переключаю фокус между страницами, страницы обновляются следующим образом:

Page 1: 1 2 1 2 3 1 1 1 1 1 1 1 1
Page 2: 1 2 1 2 3 2 2 2 2 2 2
Page 3: 1 2 1 2 3 3 3 3 3

Таким образом, похоже, что каждая страница имеет свою собственную независимую переменную локального хранилища.Я ожидал, что переменная будет разделена между страницами.

Когда я закрываю книгу, значение, отображаемое на странице с фокусом, сохраняется в локальном хранилище, и это значение будет использоваться при повторном открытии книги.

Я OSX 10.14.И я проверил это в Apple Books (1.16).Как правильно распределить состояние между страницами?

...