本文介绍如何在 Discuz! 论坛中通过 JavaScript 实现 MSN 在线聊天与好友添加功能。核心逻辑包含两个函数:msnoperate 用于处理添加好友和发起聊天的链接跳转,messengerInstalled 利用 ActiveXObject 检测本地是否安装 MSN Messenger。若已安装则直接调用客户端,否则弹出网页版聊天窗口。配合前端 HTML 代码中的图片链接,可实现点击图标触发相应操作。
Discuz! 集成 MSN 聊天功能的实现方法
在 JavaScript 脚本中添加以下两个函数定义。
function msnoperate(action, msn) {
var actionArray = new Array();
actionArray = {
'add' : 'http://go.discuz.com/?app=msn&linkid=5&msn=' + msn,
'chat' : 'http://go.discuz.com/?app=msn&linkid=6&msn=' + msn
}
if(messengerInstalled()) {
window.open(actionArray[action]);
} else {
window.open('http://go.discuz.com/msn/msn.html','_blank','width=571, height=498');
}
}
function messengerInstalled() {
try {
new ActiveXObject("MSNMessenger.P4QuickLaunch");
return true;
}
catch (e) {
return false;
}
}
在 HTML 代码中添加以下内容以触发上述 JavaScript 函数:
———————————–
点击图标与我聊天吧! <a href="#" onclick="msnoperate('add', 'xxx@hotmail.com')"><img src="/images/msnadd.gif" border="0" alt="添加xxx为MSN好友"></a>
<a href="#" onclick="msnoperate('chat', 'xxx@hotmail.com')"><img src="/images/msnchat.gif" border="0" alt="通过MSN和xxx聊天"></a>
<a href="http://wpa.qq.com/msgrd?V=1&Uin=123456789&Site=绿茶馆儿~|WWW.GETO.CN&Menu=yes" target="_blank"><img src="http://wpa.qq.com/pa?p=1:123456789:4" border="0" alt="QQ" /></a>