优雅的处理单页多框架(<iframe>)窗口管理同步问题
{ event: '事件名称', type: 'child', target: '内嵌页的window', data: '传递的数据,即FrameController.broadcast(event, data)的data', frameId: '内嵌页标志' }
1、点击发送通知,所有打开的内嵌页都会受到通知。
var addLog = function(from, event, data) { var _old = $('#log').html().substring(0, 3000); $('#log').html( (logTpl + _old) .replace('#EVENT#', event) .replace('#DATA#', JSON.stringify(data)) .replace('#SOURCE#', from) ); console.log('event:', event, 'data:', data); }; //同步通知 FrameController.addListener('broadcast', function(e) { $('#msg').val(e.data.msg); addLog(e.frameId, e.event, e.data); }); //发送广播 $('#send').click(function() { var nums = FrameController.broadcast('broadcast', { msg: $('#msg').val() }); $('#log').html('通知成功:' + nums + '\n\n' + $('#log').html()); }); //更新输入状态 $('#msg').change(function() { FrameController.broadcast('change', { text: '输入框内容已更改:' + $(this).val() }); }); //更新状态 FrameController.addListener('change', function(e) { addLog(e.frameId, e.event, e.data); });
2、新增 内嵌页,关闭内嵌页,可以通过:FrameController.addListener('frame.add',func)、FrameController.addListener('frame.remove',func) 进行监听
//监听系统事件 var addLog = function(from, event, data) { var _old = $('#log').html().substring(0, 3000); $('#log').html( (logTpl + _old) .replace('#EVENT#', event) .replace('#DATA#', JSON.stringify(data)) .replace('#SOURCE#', from) ); console.log('event:', event, 'data:', data); }; //监听系统事件 FrameController.addListener('frame.remove', function(e) { addLog(e.frameId, e.event, e.data); }); FrameController.addListener('frame.add', function(e) { addLog(e.frameId, e.event, e.data); });
3、可以对一个事件增加多个监听方法,可以删除所有监听方法、删除某一个监听方法
var logTpl = '事件:#EVENT# 来源:#SOURCE#\n数据:#DATA#\n\n', addLog = function(from, event, data) { var _old = $('#log').html().substring(0, 3000); $('#log').html( (logTpl + _old) .replace('#EVENT#', event) .replace('#DATA#', JSON.stringify(data)) .replace('#SOURCE#', from) ); console.log('event:', event, 'data:', data); }, msgEventListener = function(e) { $('#log').html('自定义事件已经触发,添加多次会触发多次\n\n' + $('#log').html()); }; //添加自定义事件 $('#add_custom').click(function() { FrameController.addListener('broadcast', msgEventListener); }); //删除自定义事件 $('#remove_custom').click(function() { FrameController.removeListener('broadcast', msgEventListener); });
本文向大家介绍emacs 多个窗口或框架,包括了emacs 多个窗口或框架的使用技巧和注意事项,需要的朋友参考一下 示例 Emacs中的“窗口”指的是否则称为“窗格”或“屏幕划分”的内容。一些窗口操作命令包括: 水平分割当前窗口: C-x 2 垂直拆分当前窗口: C-x 3 选择下一个窗口: C-x o 关闭当前窗口: C-x 0 关闭所有其他窗口,但当前窗口除外: C-x 1 Emacs中的“框
问题内容: 我有这个网页,我想使其自动化。这是应用程序的步骤和功能。 使用Selenium启动应用程序 单击某些按钮后,将在主页上弹出一个框架 我可以通过硒Web驱动程序在框架上执行操作 但同一框架中有一个日历图标。 单击日历图标后,将弹出一个带有日历和“确定”按钮的弹出窗口。 我可以在弹出窗口中选择日期,然后单击“确定”按钮,弹出窗口会自动关闭。 现在,我想再次切换到FRame来执行进一步的操作
Qt 的 QMainWindow 类提供了一个应用程序主窗口,包括一个菜单栏( menu bar)、多 个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)以及一个 中心部件(central widget),常见的一种界面布局如图 8-1 所示。 图 8-1 Qt 主窗口常见布局示意图 绝大多数现代 GUI 应用程序都会提供一些菜单、上下文菜
问题内容: 运行以下代码: 结果是: 上面的代码中没有定义任何窗口框架,它看起来默认的窗口框架是 不确定我对默认窗口框架的理解是否正确 问题答案: 从Spark Gotchas 默认帧规格取决于给定窗口定义的其他方面: 如果指定了ORDER BY子句,并且该函数接受了帧规范,则该帧规范是由RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW定义的, 否
本文向大家介绍C++之CWnd窗口框架实例,包括了C++之CWnd窗口框架实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了CWnd窗口框架,分享给大家供大家参考。具体分析如下: .h头文件代码如下: .cpp源文件代码如下: 希望本文所述对大家的C++程序设计有所帮助。
没有工具栏或任何边框仅纯内容的窗口. 创建无框窗口 在 BrowserWindow的 options中设置 frame 为 false 即可创建无框窗口. 1 const {BrowserWindow} = require('electron') 2 let win = new BrowserWindow({width: 800, height: 600, frame: false}) 3 win