在看完 HOTMAIL 的实现方式后(虽然没弄明白),又看了看 阿里巴巴 的实现方式,发现是这样的它关键的地方在这,如下:
window.location = "Alitalk:SendIM?"+newid+"&url1=http://amis1.sh1.china.alibaba.com/potentialContact.dll?offerId="+infoId+"&url2=http://china.alibaba.com/others/feedbackfromalitalk.html?online="+isOnline+"#type="+type.toLowerCase()+"#memberLevel="+memberLevel+"#offerId="+infoId+"#time="+d.getTime();
有了这段就可以将阿里巴巴的那个通讯软件启动发消息了,如果没用安装的话会带到这个页面,如下:
window.open("http://china.alibaba.com/community/turbine/template/community%2CATCPromotionDown");有哪位大侠解释下这个“window.location = "Alitalk:SendIM"”,是不是在安装阿里巴巴的那个通讯软件的时候设置什么东西?在网上查了下,但比较郁闷的是没查到相应的资料。
window.location = "Alitalk:SendIM?"+newid+"&url1=http://amis1.sh1.china.alibaba.com/potentialContact.dll?offerId="+infoId+"&url2=http://china.alibaba.com/others/feedbackfromalitalk.html?online="+isOnline+"#type="+type.toLowerCase()+"#memberLevel="+memberLevel+"#offerId="+infoId+"#time="+d.getTime();
有了这段就可以将阿里巴巴的那个通讯软件启动发消息了,如果没用安装的话会带到这个页面,如下:
window.open("http://china.alibaba.com/community/turbine/template/community%2CATCPromotionDown");有哪位大侠解释下这个“window.location = "Alitalk:SendIM"”,是不是在安装阿里巴巴的那个通讯软件的时候设置什么东西?在网上查了下,但比较郁闷的是没查到相应的资料。
看看注册表
HKEY_CLASSES_ROOT\PROTOCOLS\Handler\
"about:""http:""ftp:"这些都是IE的地址前缀,是可以自定义的。
你来这里看看,好像研究了对应你这种webmessenger.希望对你有所帮助,路过.....UP
Web下(不考虑使用activex控件的那种)即时寻呼一般都是基于“拉”技术,即每隔一段时间向服务器获取最新消息,然后反映到客户端,基于“拉”技术,一般有几种形式:frame/iframe刷新:一般是用一个隐藏的iframe/frame页面,定时刷新,从服务器获取最新消息,并执行脚本,将消息反映到客户端。
这种方法的好处是兼容性好,适用于所有支持frame和脚本的浏览器,缺点就是因为是网页直接刷新,有可能在某些机子上每次刷新都会有“吧嗒”的声音,如果浏览器状态栏可见,上面的进度条会一闪一闪的,比较烦人。例如微软最新推出的Msn Web Messenger即是基于此技术。XmlHttp/XmlDom无刷新:这种无刷新技术一度让Web开发者亢奋不已。在客户端,XmlDom可以根据URL获取服务器端的Xml文件并返回为一个XmlDocument,而XmlHttp不仅可以获取xml和html,还可以向服务器端发送一个XmlDocument,而且,结合客户端脚本的定时器:setTimeout("Function()", TimeoutInterval),定时从服务器获取数据。
尤其要注意一点是不管是XmlDom还是XmlHttp,都有“同步”和“异步”之说,如果是“同步”,则浏览器会等到把所获取的Xml全部下载完才继续执行,如果是“异步”,则浏览器会不管它有没有下载完,直接继续下一步执行。对于Web即时寻呼,还是推荐使用“异步”方式,因为“同步”方式很可能会造成浏览器“假死”的情况,对客户来说很不友好。使用“异步”就可以避免这个问题,然后可以在onreadystatechange事件中判断是否已经加载完,然后解析消息。
这种方式的好处是对于客户来说感觉不到浏览器在刷新,缺点是必须要客户端是IE,并且安装了msxml,所以兼容性不是很好。
BTW: 听说Asp.Net 2.0对于这种无刷新进行了封装,可惜没试过,不知道兼容性如何:)脚本调用WebService无刷新:WebService是个好东西,js也可以调用webserice,微软专门有一个WebService.htc,将对WebService的调用进行了封装,可以非常方便的调用,其实即使没有WebService.htc,我们也可以自己来解析,因为WebService实质也就是xml了,在客户端可以结合XmlDom来解析。然后借助定时器,也可以做到无刷新来获取服务器端消息。
这种方式的优缺点和第二种方式差不多。国外有个聊天室就是使用的这种技术。
对于我正在开发的WebMessenger,我是打算类似于Asp.Net Forums,可以灵活的换皮肤,并且根据浏览器,如果可以用XmlHttp,就用XmlHttp,如果不能使用XmlHttp,就使用frame刷新。
msn messenger安装后,网页中可以直接以网页组件调用了。包括这些状态图片,也是在msn messenger的网页组件在作用:)