在不同的选项卡中对Web应用程序的更改做出反应
React on webapplication changes in different tabs
我有一个web应用程序,它同时在两个不同的浏览器窗口/选项卡中运行(让我们称它们为a和b)。问题是,我需要在点击选项卡a时对窗口b中的内容更新做出反应,更改需要立即进行。
欢迎提出任何建议。谢谢
只有当其中一个窗口被另一个使用window.open
打开时,浏览器选项卡/窗口之间的直接通信才有效。如果您的应用程序中是这种情况,您可以执行以下操作(即时双向通信)。这只是一个非常基本的例子,但我相信你可以扩展它来满足你的需求。
窗口A:
var windowB = window.open("windowB.html"); //reference to window B
windowB.onload = function(){
windowB.triggerChange();
};
function changeOK(str) {
console.log("windowA: "+str);
}
窗口B:
var windowA = window.opener; //reference to window A
function triggerChange() {
console.log("windowB: triggerChange");
windowA.changeOK("change done");
}
在尝试此功能之前,不要忘记禁用弹出窗口阻止程序。;)
如果窗口A和窗口B是独立打开的,你就不能像这样使用直接通信。然后你基本上有两个选项来完成你想要的(在SO上描述):
使用cookie:在窗口a中设置cookie以传递数据,并使用窗口B中的
setTimeout
定期读取cookie以对更改做出反应。请参见此示例。使用AJAX和长轮询(Comet技术)与服务器通信。
由于这两种解决方案都使用间接通信,它们显然无法在窗口B中触发即时更改。因此,您必须等待至少几毫秒,才能更新B的内容。
相关文章:
- 在不同的选项卡中对Web应用程序的更改做出反应
- AngularJS单页应用程序中的Toggable选项卡
- PHP 应用程序中的选项卡 - 融合图表
- 如何使用Javascript/jQuery将信息从查询字符串传递到Facebook中的页面选项卡应用程序
- Dojo,基本选项卡应用程序
- 在我的html页面-web应用程序用户界面的一个选项卡中的另一个html页面中的选项卡
- Facebook选项卡应用程序动态URL
- 在HTML5、CSS、JavaScript中添加选项选择器,类似于移动应用程序中的选项设置
- 什么's是在前端应用程序中放置配置选项的最常见方式
- 从Web应用程序发送地理位置,即使选项卡不在焦点上
- 更改移动web应用程序的字体大小选项
- 选项卡在 MVC 应用程序中不起作用
- 不支持请求方法“选项” - Spring 引导应用程序
- 需要帮助Facebook应用程序和页面选项卡高度使用FB调整大小.画布设置大小
- 创建AngluarJS应用程序,但没有SEO友好URL的服务器端选项.这会起作用吗?
- 开发多租户应用程序,以便用户可以在同一浏览器中使用不同的选项卡在不同的组织中工作
- 除了钛之外的 Html5 桌面 Web 应用程序选项
- 粉丝页面上的Facebook应用程序选项卡
- 在Firefox中添加应用程序选项卡
- JavaScript刷新页面时,每次有人来到我的应用程序选项卡