Kindle实验性浏览器将网页中包含的所有JavaScript的时间提前了7个小时-如何抵消?

问题描述 投票:0回答:1

我通过其“实验浏览器”将旧的Kindle回收到微型气象站中。我创建了显示日期和时间的网页以及天气数据,并将这些数据放入iframe中供Kindle浏览器使用。在我遇到Kindle Voyage浏览器的怪异问题之前,它一直很好地工作。

这是我在自定义iframe中用于天气的内容。

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

我的第一个线索很奇怪,就是我在其他Kindle上成功使用该日期和时间javascript snippet之前的时间是+7小时。换句话说,当它是下午4点时,浏览器告诉页面中的所有javascript内容其呈现的是晚上11点,依此类推。

我仔细检查了Kindle时间,这是正确的。然后,我尝试通过手动更改整个Kindle -7小时的时间来补偿时间,但并没有改变浏览器的问题。

我终于调整了日期和时间的JavaScript代码段,以将时间偏移7小时以固定时间的显示。

但是,Kindle Voyage的浏览器也将iframe中的天气提前了7个小时,从而导致iframe中的天气提前了7个小时。这会导致天气代码在下午5点之后变得不稳定,因为浏览器随后使其认为是第二天(提前7小时)。我无法直接访问任何代码来抵消时间,因此我需要以某种方式抵消网页或服务器上的7个小时。

我尝试使用各种SetEnv TZ时区更改.htaccess文件中的时区,但它不会影响javascript输出的时间或iframe中的天气。

也许有一种方法可以使用javascript来强制页面中的所有javascript抵消浏览器报告的时间?还是有其他方法可以解决此问题?

我很困惑。


更新/编辑-

从来没有想出答案,所以我创建了一个时间敏感的javascript,我将其偏移了7个小时,以将不同的日期覆盖在天气图的顶部。这是一些人好奇时使用的一些代码片段。我旋转了所有内容,因为由于某些原因,Amazon现在也不允许您在Voyage上以横向模式查看浏览器,因此我将整个页面都放在了它的侧面。

从丹佛下午5点到午夜,叠加层处于活动状态。如果您在代码中记下了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>
javascript time browser kindle
1个回答
0
投票

您是否尝试过重启Kindle?我的都没有这个问题。

我尝试使用各种SetEnv TZ时区更改.htaccess文件中的时区,但它不会影响javascript输出的时间或iframe中的天气。

那是因为JavaScript时区完全是在客户端设置的。

我旋转了所有内容,因为某些原因,Amazon现在也不允许您在Voyage上以横向模式查看浏览器

如果您能够越过Kindle,我真的建议您使用WebLaunch,它可以让您显示没有URL栏的网页,并且还具有横向模式(请注意,Kindle的浏览器不会喜欢这种方式,并认为它仍处于纵向模式这会在响应式网页上引起问题,但是可以通过以下CSS修复)

html, body {
    margin: 0;
    width: 934px;
    height: 700px;
}
© www.soinside.com 2019 - 2024. All rights reserved.