【分享】所有浏览器可共享数据的JS插件
很久以前就在思考,能不能让网站记住密码对整个电脑的所有浏览器都有效。不过很快就否定了,毕竟每个浏览器都运行在完全独立的环境里,除非像QQ自动登录那样,通过插件来实现。
不过最近遇到个问题,非得解决这不可。
由于网站的部分用户是通过程序内嵌浏览器访问的,用过Webbrowser控件的童鞋都知道,不管系统ie版本有多高,内嵌网页始终用ie7的内核(除非系统只有ie6)。
就出现大麻烦了:在内嵌网页里登录后,虽然之后的页面转跳确实还能够识别cookie。不过当程序弹出网页时,情况就大不一样了。弹出来的是系统默认的浏览器,未必就是ie7的内核,甚至根本就不是ie浏览器!于是就出现用户未登录的情况了。
要解决此问题,似乎唯一的方法就是弹出url的时候,加上类似cookie的session值。就像从QQ里点出邮箱,微博之类的,总是带着一串眼花缭乱的乱码,作为认证。
不过,为了能简单的解决此问题,并且不污染那简短的网址,决定使用个可以在系统全局保存变量的方法。那就唤出万能的flash来解决吧~~
用上flash外援,一切难题都迎刃而解了~ FP很早的版本里就有个叫SharedObject的东东,可以在整个系统,不对,是整个网络里,共享数据!不过我们现在没必要数据远程共享,只做本地共享就可以了。
SharedObject的使用非常简单,因为没有过期时间这玩意,所以比操作cookie还容易。这里就不累述了~
AS和JS两部分的代码都非常简单,基本的交互而已,已封装成GlobalCookie.js插件。想体验下所有浏览器共享数据的感觉:
http://www.etherdream.com/FunnyScript/GlobalCookie/
(不过有个诡异的是,最新版的Chrome浏览器突然失效了~ Maxthon的Webikit倒是没问题。。。)
虽然这插件很简单没任何技术含量。不过使用这种思路,共享全局数据的模式,可以使很多Web的体验大幅改进了。
例如开多个浏览器逛论坛刷微博,很是消耗服务器资源。通过全局的数据共享,相同的数据只需传输一份,到客户端之后再相互分配协调。
说完了全局的共享,要是能全局发送消息,相互通知就更完美了。事实上仍是可以实现的,使用flash的LocalConnection对象即可!详情请听下回分解。