[原创]新版PageOffice V4.0为什么用弹出窗口的方式打开文件?

前的包含文档处理功能的Web办公系统,在打开文档的时候,一部分系统是采用Office文档嵌入到主窗口页面中右侧工作区域的方式,另一部分系统采用的是弹出新的浏览器窗口,里面完整的嵌入Office文件的打开方式,这两种方式都有各自的优点和缺点。

主窗口页面中嵌入方式:主窗口中包含了丰富的菜单、按钮和输入框等元素,那么通过JS调用,可以很方便的实现文档控件与HTML元素的交互,但是屏幕的尺寸是有限的,浏览器本身的标题栏要占据整个屏幕至少十分之一的区域,Web项目页面的上方一般是整行的单位标识区,左侧是系统的导航区,右侧的工作去只能占据整个浏览器窗口大约三分之二到四分之三的大小,把office文档嵌入到工作区域之后,office的工具栏自身又要占用一大块区域,留给用户编辑Office文档的区域就显的非常小,用户编辑文档时连半页内容也看不全,操作极为不便。

采用弹出新浏览器窗口的方式:与主窗口页面中嵌入方式刚刚相反,使用js的window.open方法或window.showModelessDialog方法在弹出的新浏览器窗口满屏的嵌入文档控件,而且还可以设置浏览器自己的工具栏隐藏,这样就与本地全屏启动Office文档编辑的体验一样舒适。相对主窗口页面中嵌入方式来说,用户更容易接受弹出新浏览器窗口方式,但是对于系统的开发人员来说代价就很大了。在弹出新窗口的时候可以用js传递部分参数,可新窗口中的文件打开之后,如果需要与主窗口做数据的交互或数据的同步,就完全无法实现,并且在文件关闭的时候也无法通知主窗口做一些更新数据的操作。

鉴于以上情况, PageOffice 开发团队结合两种方式的优点创造性的研发出了POBrowser方式在线打开文档。不管主窗口是什么浏览器,在在线打开文档的时候都会弹出PageOffice产品提供的新浏览器窗口:POBrowser,POBrowser是基于IE内核的所以可以支持插件,POBrowser不但保持了主窗口中的Session,还可以通过名称为POBrowser的JavaScript对象提供的一组方法与父窗口传递参数和交互调用,彻底解决主窗口与子窗口的割裂问题。同时PageOffice V4.0还解决了以下四个问题。

  1. Chrome浏览器从42版本开始默认不启动插件,从45版本开始彻底关闭插件调用接口,网页中的任何插件(包括网银插件)都无法在Chrome浏览器中运行。FireFox浏览器在2016年年初发布消息,到2016年年底Firefox浏览器将关闭插件调用接口,所以从Firefox的52版本开始所有网页中的插件也都不能运行了。Chrome和Firefox停止对插件支持的原因主要有两点,第一是因为这两个浏览器中的插件技术都是基于NPAPI技术接口标准的,这种技术接口的缺陷是开发的插件很不稳定,所以大家在使用Chrome和Firefox的时候如果网页中使用了插件(包括Flash)就会经常出现浏览器崩溃的现象;第二点是现在HTML5技术的日益完善和推广,已经可以解决网页中播放视频的需求(网页中使用频率最高的插件就是Flash ,目的就是为了播放视频),所以从苹果公司率先放弃Flash改用HTML5开始,Chrome和Firefox也放弃了对插件的支持。PageOfficeV4.0则采用POBrowser技术完美解决了这个问题,Chrome和Firefox都可以继续运行PageOffice进行在线Office文档操作。

  2. Web项目的推行问题。目前市场上Chrome和FireFox浏览器占有很大的份额,用户的电脑上同时安装了多个浏览器的情况是极为普遍的现象,并且很多用户喜欢和习惯使用Chrome浏览器,大部分的网站也以Chrome和Firefox浏览器为标准布局自己的网站页面,所以用户使用Chrome或Firefox看到的网页是最漂亮的,如果让用户在使用包含有在线文档处理功能的Web项目时必须用IE浏览器,那么Web项目的推行阻力是很大的。如果使用新版PageOffice,那么用户可以保持使用Chrome和FireFox的习惯,Web项目的推行完全不受浏览器的制约和影响。

  3. 以弹出窗的方式在线同时打开多个文件时,多个子窗口文档的混乱问题。多个文件同时打开,区分开哪个子窗口中的文件分别对应文档列表中的哪个文件就变成了一个头疼的问题,如果此问题不能有效解决,那么还会出现同一份文件重复打开的问题。POBrowser方式弹出子窗口打开文件时,会在主窗口上自动生成激活子窗口的按钮,只需要点击此按钮就可以把当前主窗口上对应打开文件的子窗口切换出来,彻底解决此混乱问题。

  4. 不同的浏览器针对JavaScript的onunload,onbeforeunload事件互不兼容的问题。POBrowser提供了浏览器关闭的事件,可以保证在浏览器关闭的时候一定会触发开发人员希望执行的js代码,比如调用PageOffice提供的判断文件是否修改的属性,或提示用户保存等等需求。综上所述,我们推荐开发者优先采用POBrowser方式集成新版PageOffice,这不仅能够彻底完美解决浏览器问题,而且还能为用户带来良好的操作体验。

综上所述,我们推荐开发者优先采用POBrowser方式集成新版PageOffice,这不仅能够彻底完美解决浏览器问题,而且还能为用户带来良好的操作体验。

posted @ 2019-11-01 11:26  大方无隅  阅读(732)  评论(0编辑  收藏  举报