我正在尝试编写一个小型Web应用程序,该应用程序能够从URL参数中获取数据并显示有关该数据的适当信息。页面不呈现服务器端,因此所有参数都是告诉javascript将什么发送到我的JSON API并加载到视图中。该页面正在从另一个桌面应用程序加载,该应用程序对要加载的URL中使用的数据进行编码,因为这是我可以让它与网站通信的唯一方式...例如,桌面应用程序将生成类似
的链接http://myapp/?room=1&tile=7
这适用于第一个实例,但我希望它像许多桌面应用程序一样工作,如果你再次加载应用程序,它只是用新数据调出原始实例。我知道新页面必须至少短暂加载,但有没有办法让它只需要获取新数据,将其发送到页面的第一个实例然后自行关闭?当我有一个主页面时,我知道如何做到这一点,我使用window.open()打开第二个,我可以强制重新加载。但我从来没有在第一个实例手动打开的情况下完成它,然后我需要与之交互。
答案 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>