有谁知道我做错了什么?首先,我使用当前时间在脚本标记中的另一个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框。
答案 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文件访问变量