加载另一个相同页面时,使用新数据激活第一个网页

时间:2014-12-31 13:51:47

标签: javascript html html5

我正在尝试编写一个小型Web应用程序,该应用程序能够从URL参数中获取数据并显示有关该数据的适当信息。页面呈现服务器端,因此所有参数都是告诉javascript将什么发送到我的JSON API并加载到视图中。该页面正在从另一个桌面应用程序加载,该应用程序对要加载的URL中使用的数据进行编码,因为这是我可以让它与网站通信的唯一方式...例如,桌面应用程序将生成类似

的链接
http://myapp/?room=1&tile=7

这适用于第一个实例,但我希望它像许多桌面应用程序一样工作,如果你再次加载应用程序,它只是用新数据调出原始实例。我知道新页面必须至少短暂加载,但有没有办法让它只需要获取新数据,将其发送到页面的第一个实例然后自行关闭?当我有一个主页面时,我知道如何做到这一点,我使用window.open()打开第二个,我可以强制重新加载。但我从来没有在第一个实例手动打开的情况下完成它,然后我需要与之交互。

1 个答案:

答案 0 :(得分:0)

此实现的一个主要问题是window.close()不起作用,因此您必须要求用户关闭窗口。这里讨论了“问题”或特征https://stackoverflow.com/a/19768082/3951400

<!doctype html>
<html>
<head>
<script>
function update() {
  localStorage.setItem('lastUpdate', Date.now());
  // Here you could check the data-item for changes
}

function setData() {
  localStorage.setItem('data', window.location.search);
}

var t, lastUpdate = localStorage.getItem('lastUpdate');
if(lastUpdate === null || (Date.now() - Number(lastUpdate) > 1000)) {
  // Likely no other window
  setData();
  t=setInterval(update, 100);
} else {
  setData();
  alert("please close this. ctrl+w");
}
</script>
</head>
<body>
Hello
</body>
</html>