Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript extjs桌面,无法保存窗口位置_Javascript_Extjs_Event Handling_Resize - Fatal编程技术网

Javascript extjs桌面,无法保存窗口位置

Javascript extjs桌面,无法保存窗口位置,javascript,extjs,event-handling,resize,Javascript,Extjs,Event Handling,Resize,我需要将窗口的位置和大小保存到db表中, 因此: 在事件创建->保存位置和大小时 事件移动时->保存位置 在事件调整->保存大小时 在事件最大化->保存最大化,但不是位置0,0和大小desktopSize 在这种情况下有必要: 用户注销并登录 按下恢复按钮 窗口应缩小到最大化之前的大小和位置 只有在数据库中保留旧的位置和大小时,才能实现这一点 某些事件启动某些函数,通过AJAX将值存储到db,顾名思义: 调整大小:saveSize 移动:保存位置 最大化:保存最大化 还原:还原窗口 但我不知道如

我需要将窗口的位置和大小保存到db表中, 因此:

在事件创建->保存位置和大小时

事件移动时->保存位置

在事件调整->保存大小时

在事件最大化->保存最大化,但不是位置0,0和大小desktopSize

在这种情况下有必要: 用户注销并登录 按下恢复按钮 窗口应缩小到最大化之前的大小和位置 只有在数据库中保留旧的位置和大小时,才能实现这一点

某些事件启动某些函数,通过AJAX将值存储到db,顾名思义:

调整大小:saveSize 移动:保存位置 最大化:保存最大化 还原:还原窗口

但我不知道如何处理这些事件,因为这些事件并没有像我希望的那样被触发。因此,我需要存储的值在我有机会获取它们之前会被覆盖。我记录了以下事件:

案例->事件

打开窗口: 1.移动 2.调整大小 3.移动 没关系

单击最大化: 1.调整大小 2.移动 3.最大化 位置和大小值被覆盖,但只需要保存标志maximized:true

单击恢复: 1.移动 2.恢复 3.调整大小 位置保存到db中,然后才能从db中获取旧值进行恢复

移动窗口: -移动 一切都很好


如何处理此问题???

不要手动执行此操作,而是使用组件状态处理:

陷入了我自己的想法。忘了问问extjs是如何管理的:最大化和恢复

状态存储在窗口对象本身中:

scope = win.events.maximize.listeners[0].scope;
(object) size = scope.restoreSize
[] position = scope.restorePos

因此,事件最大化是在最后触发的,因此我可以将之前的状态写入db,我认为这有点脏,因为我不知道为什么extjs如此频繁地触发事件

这只在会话中起作用!我可以保存适当的值,但在我可以这样做之前状态会更改。所以我需要以某种方式处理这些事件。。。