我已经在JavaScript / HTML5中构建了一个Firefox 22应用程序,我想阻止用户打开它的多个实例(无论是在单独的标签页还是单独的浏览器中)。
目前,当您尝试打开它的另一个实例时,它会重定向到about:blank,将应用程序的原始实例置于焦点(切换选项卡或窗口),并显示警报(在原始实例)。这是检查我在localStorage中设置的displayState变量。
我遇到的问题是,当警报启动时,用户可以按照自己的意愿打开任意数量的应用程序。
有没有比使用(displayState签入)localStorage更好的方法呢?或者有没有办法防止警报超时应用程序?
答案 0 :(得分:1)
警报阻止Firefox中的脚本执行(例如Opera不是这样),你几乎无法改变它。因此,你应该使用不同的东西。
尽管如此,您可以在应用程序启动时设置localStorage
密钥,并在关闭时取消设置(window.onunload
)。但是,如果浏览器崩溃,用户可能会陷入困境。
您可以尝试SessionStorage
,这会在浏览器关闭时自动清除。