Экспериментальный браузер Kindle, выдающий весь javascript, содержащийся на веб-страницах, не вовремя, на 7 часов вперед. - PullRequest
0 голосов
/ 07 ноября 2019

Я перерабатываю старые Kindles в мини-метеостанции через их «экспериментальный браузер». Я создаю веб-страницы, показывающие дату и время, а также данные о погоде, которые я помещаю в iframes для использования с браузером Kindle. Работал великолепно, пока не столкнулся со странной проблемой с браузером Kindle Voyage.

Это то, что я использую для погоды в настроенном iframe.

https://forecast.io/embed/#lat=39.742043&lon=-104.991531&name=Denver

Моя первая подсказкачто-то странное было время для этой даты и времени фрагмент javascript , который я успешно использовал ранее на других Kindles, был отключен на +7 часов. Другими словами, когда это 4 часа дня, браузер сообщает всему содержимому javascript на странице, на котором она отображается, что это 11 часов вечера и т. Д.

Я дважды проверил время Kindle, и оно было правильным. Затем я попытался сместить время, вручную изменив время всего Kindle на 7 часов, и это не изменило проблему с браузером.

Наконец, я настроил фрагмент кода даты и времени, чтобы сместить время на 7часов, чтобы исправить отображение времени.

Однако браузер Kindle Voyage также компенсирует погоду в моем iframe впереди на 7 часов, а также заставляет погоду в iframe сдвигаться вперед на 7 часов. Это приводит к тому, что код погоды становится ненадежным после 17:00, потому что браузер заставляет его поверить, что это на следующий день (7 часов вперед). У меня нет прямого доступа к любому из этого кода, чтобы компенсировать время, поэтому мне нужно как-то сместить 7 часов на моей веб-странице или сервере.

Я пытался изменить часовой пояс в файле .htaccessс различными часовыми поясами SetEnv TZ, но это не влияет на вывод javascript во времени и на погоду в iframe.

Возможно, есть способ использовать javascript, чтобы заставить весь javascript на странице сместить время браузераэто отчетность? Или есть какой-то другой способ исправить эту проблему?

Я в тупике.


Обновление / редактирование -

Никогда не придумал ответ, поэтому я создалЧувствительный ко времени JavaScript, который я сместил на 7 часов, чтобы наложить разные дни поверх графика погоды. Вот некоторые фрагменты кода, который я использовал на тот случай, если кому-то интересно. Я повернул все, потому что по некоторым причинам Amazon также теперь не позволяет вам просматривать браузер в ландшафтном режиме на Voyage, поэтому я просто сделал всю страницу на своей стороне.

С 17:00 по Денверу до полуночиОверлей активен. Если вы отметите в коде время от 0 до 6, то это потому, что мне пришлось перенести время на 7 часов назад до начала следующего дня. Мне также пришлось перенести дни назад, потому что странное временное смещение в браузере Kindle Voyage приводило к смещению прогноза на все дни назад. Это небрежно и может быть упрощено, но это работает.

CSS -

p {
  white-space: nowrap;
  font-size: 70px;
  word-spacing: 91px;
  transform: rotate(90deg);         
}

jQuery / Javascript -

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var d = new Date();
if(d.getHours() >= 0 && d.getHours() <= 6 ){
/* Greater than or equal to 5PM (5PM+7=midnight (0) and less than or
equal to 11PM+7=6AM (6) */
$(".amazonworkaround").show();
}
else {  
     $(".amazonworkaround").hide();
}   

});
</script>

И -

<script>
  var d = new Date();
  var weekday = new Array(7);
  weekday[0] = "Now Sun Mon Tue Wed Thu Fri Sat";
  weekday[1] = "Now Mon Tue Wed Thu Fri Sat Sun";
  weekday[2] = "Now Tue Wed Thu Fri Sat Sun Mon";
  weekday[3] = "Now Wed Thu Fri Sat Sun Mon Tue";
  weekday[4] = "Now Thu Fri Sat Sun Mon Tue Wed";
  weekday[5] = "Now Fri Sat Sun Mon Tue Wed Thu";
  weekday[6] = "Now Sat Sun Mon Tue Wed Thu Fri";

  var n = weekday[d.getDay()];
  document.getElementById("dayfix").innerHTML = n;
</script>

И наконец -

<div class="amazonworkaround" style="position: absolute; top: 0px; left: 625px;
width: 85px; height: 1800px; background-color: white; padding-left: 0px;
z-index: 101;"><p id="dayfix"></p></div>
...