在某些情况下,页面加载商务通JS代码失败,导致访客点击咨询按钮无法进入商务通对话窗口,下面医疗模板库为大家整理了一段代码,可以防止因商务通加载失败导致访客无法打开对话窗口这种情况的发生。
完整代码如下:
<script type="text/javascript">
function online() {
var e = 'anniu';
if (arguments.length == 1) {
e = encodeURIComponent(arguments[0]);
}
if(typeof openZoosUrl == "undefined"){
//测试请将该地址替换为自己的商务通地址
var url = 'http://test.zoossoft.net/LR/Chatpre.aspx?id=test001&lng=cn&rf1=' + encodeURIComponent(document.referrer);
url = url + '&e=' + e + '&p=' + encodeURIComponent(location.href);
try{
window.open(url, 'news' + (new Date()).getTime());
}catch(e){
location.href = url;
}
}else{
openZoosUrl('chatwin', '&e=' + e);
}
return false;
}
</script>
代码使用说明:
1、实际测试使用时请将代码中的商务通地址替换为自己的 http://test.zoossoft.net/LR/Chatpre.aspx?id=test001
2、之前我们在网站上添加打开商务通对话窗口按钮时一般是像以下这种方式添加的:
<a href="/swt/">咨询在线专家</a> //使用页面跳转的方式
<a href="javascript:;" //使用商务通自带打开对话窗口函数,下同。
<a href="javascript:openZoosUrl('chatwin','&e=zhuanjia')">咨询在线专家</a>
如果使用以上提供代容错代码后,只需要将连接代码修改为以下即可:
<a href="javascript:;" onclick="online('zhuanjia')">咨询在线专家</a>
<a href="javascript:online('zhuanjia')">咨询在线专家</a>
代码原理:
代码只是做了一个判断,判断openZoosUrl函数是否定义,openZoosUrl为商务通自带的打开对话窗口的函数,如果已经定义说明商务通代码正确加载,那么我们就直接调用商务通打开对话框的函数来打开对话框即可;如果该函数未定义,则说明商务通代码加载失败,我们就利用商务通对话窗口链接来打开对话窗口,其中以上提供的代码中包含了获取来路页面地址、当前页面地址的代码,传递给商务通后台,防止轨迹丢失的情况。