用已用时间替换div的内容

时间:2018-01-15 16:22:39

标签: javascript html

有谁知道我做错了什么?首先,我使用当前时间在脚本标记中的另一个HTML文件中创建了一个全局变量。现在我想计算这个文档和另一个文档之间的时间,当它打开时。它是简单的2D游戏的一部分,这将是一个时间计数器。我试过这样但是它没有用。

第一个HTML部分:

<script type="text/javascript">
        var elem = document.getElementById('game');
        elem.addEventListener("keydown", KeyPressed );
        start = performance.now();
</script>   

另一个HTML文件中的第二个:

<script type="text/javascript">
        var zeit = performance.now();
        document.getElementById('sc').innerHTML = 'Dauer: ' + ((zeit - start) / 1000) + ' sek.';
</script>

Sc表示我想要抄袭时间的div框。

3 个答案:

答案 0 :(得分:0)

看起来你可能超出了范围: https://www.w3schools.com/js/js_scope.asp

这意味着第二个脚本代码不知道start您是否尝试过console.log(start)来检查它是否可用?

要处理此问题,您可能希望将变量start添加为某个隐藏变量,以便第二个脚本可以访问,或者如果发生重定向,您可能需要将其作为参数传递。

如果这不正确,请你详细说明你想做什么。

答案 1 :(得分:0)

由于您在一个window中创建start并尝试在另一个窗口中访问它,因此您将失去对第二个html文件中start的引用。一种解决方案是使用local storage来保存开始时间

<script type="text/javascript">
        var elem = document.getElementById('game');
        elem.addEventListener("keydown", KeyPressed );
        start = performance.now();
        localStorage.setItem('start', start);
</script>

然后在第二个文件中获取开始时间

<script type="text/javascript">
        var zeit = performance.now();
        var start = localStorage.getItem("start");
        document.getElementById('sc').innerHTML = 'Dauer: ' + ((zeit - start) / 1000) + ' sek.';
</script>

答案 2 :(得分:-1)

您无法从其他HTML文件访问变量