我的那些事

亲们~~停下脚步歇息片刻吧!

多说回复后显示浏览器及操作系统信息(Useragent)

本文已更新匹配2015年新版embed.js!

[wx]
相关内容:
多说社会化评论框核心脚本embed.js本地化方法
https://ssk.91txh.com/205
多说社会化评论框添加 站长回复 标记
https://ssk.91txh.com/207

修改前请确保您的多说核心脚本embed.js已经本地化

远程文件地址:http://static.duoshuo.com/embed.js【点此下载】

检查方法:在有多说回复框的页面点击鼠标右键查看源代码,搜索embed.js,如果找到:http://static.duoshuo.com/embed.js【点此下载】 这条网址,说明您的多说没有做过本地化, 请查看:多说社会化评论框核心脚本embed.js本地化方法 https://ssk.91txh.com/205

注意:回复本文就可以查看到效果了,由于是手工收集整理添加的,可能会出现浏览器及操作系统信息不准确的现象,如果您回复后看到显示的浏览器及操作系统信息不正确,请点击下方报错地址,将您的Useragent信息告诉我,我会及时修改并更新本文!

Useragent报错地址:https://ssk.91txh.com/useragent.php

修改开始,打开embed.js,在最顶部添加如下显UA代码:

【查看代码】
//移动客户端判断开始,作用:在移动客户端显示不同样式
function sskcheckMobile(){  
    var isiPad = navigator.userAgent.match(/iPad/i) != null;  
    if(isiPad){  
        return false;  
    }  
    var isMobile=navigator.userAgent.match(/iphone|android|phone|mobile|wap|netfront|x11|java|opera mobi|opera mini|ucweb|windows ce|symbian|symbianos|series|webos|sony|blackberry|dopod|nokia|samsung|palmsource|xda|pieplus|meizu|midp|cldc|motorola|foma|docomo|up.browser|up.link|blazer|helio|hosin|huawei|novarra|coolpad|webos|techfaith|palmsource|alcatel|amoi|ktouch|nexian|ericsson|philips|sagem|wellcom|bunjalloo|maui|smartphone|iemobile|spice|bird|zte-|longcos|pantech|gionee|portalmmm|jig browser|hiptop|benq|haier|^lct|320x320|240x320|176x220/i)!= null;  
    if(isMobile){  
        return true;  
    }  
    return false;  
}  
//移动客户端判断结束
//显UA开始
function sskua(e) {
		var r = new Array;
		var outputer = '';
		if (r = e.match(/FireFox\/([^\s]+)/ig)) {
			var r1 = r[0].split("/");
			outputer = '<span class="ua_firefox"><i class="fa fa-globe"></i> Mozilla FireFox' + '|' + r1[1]
		} else if (r = e.match(/Maxthon([\d]*)\/([^\s]+)/ig)) {
			var r1 = r[0].split("/");
			outputer = '<span class="ua_maxthon"><i class="fa fa-globe"></i> Maxthon'
		} else if (r = e.match(/BIDUBrowser([\d]*)\/([^\s]+)/ig)) {
			var r1 = r[0].split("/");
			outputer = '<span class="ua_ucweb"><i class="fa fa-globe"></i> 百度浏览器' + '|' + r1[1]
		} else if (r = e.match(/UBrowser([\d]*)\/([^\s]+)/ig)) {
			var r1 = r[0].split("/");
			outputer = '<span class="ua_ucweb"><i class="fa fa-globe"></i> UCBrowser' + '|' + r1[1]
		} else if (r = e.match(/UCBrowser([\d]*)\/([^\s]+)/ig)) {
			var r1 = r[0].split("/");
			outputer = '<span class="ua_ucweb"><i class="fa fa-globe"></i> UCBrowser' + '|' + r1[1]
		} else if (r = e.match(/MetaSr/ig)) {
			outputer = '<span class="ua_sogou"><i class="fa fa-globe"></i> 搜狗浏览器'
		} else if (r = e.match(/2345Explorer/ig)) {
			outputer = '<span class="ua_2345explorer"><a href="https://ssk.91txh.com/2345download.php?id=2" target="_blank" style="color:#FFFFFF!important;"><i class="fa fa-globe"></i> 2345王牌浏览器</a>'
		} else if (r = e.match(/2345chrome/ig)) {
			outputer = '<span class="ua_2345chrome"><a href="https://ssk.91txh.com/2345download.php?id=3" target="_blank" style="color:#FFFFFF!important;"><i class="fa fa-globe"></i> 2345加速浏览器</a>'
		} else if (r = e.match(/LBBROWSER/ig)) {
			outputer = '<span class="ua_lbbrowser"><i class="fa fa-globe"></i> 猎豹安全浏览器'
		} else if (r = e.match(/MicroMessenger\/([^\s]+)/ig)) {
			var r1 = r[0].split("/");
			outputer = '<span class="ua_qq"><i class="fa fa-weixin"></i> 微信' + '|' + r1[1]/*.split('/')[0]*/
		} else if (r = e.match(/QQBrowser\/([^\s]+)/ig)) {
			var r1 = r[0].split("/");
			outputer = '<span class="ua_qq"><i class="fa fa-globe"></i> QQ浏览器' + '|' + r1[1]/*.split('/')[0]*/
		} else if (r = e.match(/QQ\/([^\s]+)/ig)) {
			var r1 = r[0].split("/");
			outputer = '<span class="ua_qq"><i class="fa fa-globe"></i> QQ浏览器' + '|' + r1[1]/*.split('/')[0]*/
		} else if (r = e.match(/MiuiBrowser\/([^\s]+)/ig)) {
			var r1 = r[0].split("/");
			outputer = '<span class="ua_mi"><i class="fa fa-globe"></i> Miui浏览器' + '|' + r1[1]/*.split('/')[0]*/
		} else if (r = e.match(/Edge([\d]*)\/([^\s]+)/ig)) {
			var r1 = r[0].split("/");
			outputer = '<span class="ua_ie"><i class="fa fa-globe"></i> Edge' + '|' + r1[1]/*.split('.')[0]*/
		} else if (r = e.match(/Chrome([\d]*)\/([^\s]+)/ig)) {
			var r1 = r[0].split("/");
			outputer = '<span class="ua_chrome"><i class="fa fa-globe"></i> Chrome' + '|' + r1[1]/*.split('.')[0]*/
		} else if (r = e.match(/safari\/([^\s]+)/ig)) {
			var r1 = r[0].split("/");
			outputer = '<span class="ua_apple"><i class="fa fa-globe"></i> Apple Safari' + '|' + r1[1]
		} else if (r = e.match(/Opera[\s|\/]([^\s]+)/ig)) {
			var r1 = r[0].split("/");
			outputer = '<span class="ua_opera"><i class="fa fa-globe"></i> Opera' + '|' + r[1]
		} else if (r = e.match(/Trident\/7.0/gi)) {
			outputer = '<span class="ua_ie"><i class="fa fa-globe"></i> Internet Explorer 11'
		} else if (r = e.match(/MSIE\s([^\s|;]+)/gi)) {
			outputer = '<span class="ua_ie"><i class="fa fa-globe"></i> Internet Explorer' + '|' + r[0]/*.replace('MSIE', '').split('.')[0]*/
		} else {
			outputer = '<span class="ua_other"><i class="fa fa-globe"></i> 其它浏览器'
		}
		if(sskcheckMobile()){
			Mobile='<br><br>';
		}else{
			Mobile='';
		}
		return outputer+"</span>"+Mobile ;
	}
	function sskos(e) {
		var os = '';
		if (e.match(/win/ig)) {
			if (e.match(/nt 5.1/ig)) {
				os = '<span class="os_xp"><i class="fa fa-desktop"></i> Windows XP'
			} else if (e.match(/nt 6.1/ig)) {
				os = '<span class="os_7"><i class="fa fa-desktop"></i> Windows 7'
			} else if (e.match(/nt 6.2/ig)) {
				os = '<span class="os_8"><i class="fa fa-desktop"></i> Windows 8'
			} else if (e.match(/nt 6.3/ig)) {
				os = '<span class="os_8_1"><i class="fa fa-desktop"></i> Windows 8.1'
			} else if (e.match(/nt 10.0/ig)) {
				os = '<span class="os_8_1"><i class="fa fa-desktop"></i> Windows 10'
			} else if (e.match(/nt 6.0/ig)) {
				os = '<span class="os_vista"><i class="fa fa-desktop"></i> Windows Vista'
			} else if (e.match(/nt 5/ig)) {
				os = '<span class="os_2000"><i class="fa fa-desktop"></i> Windows 2000'
			} else {
				os = '<span class="os_windows"><i class="fa fa-desktop"></i> Windows'
			}
		} else if (e.match(/android/ig)) {
			os = '<span class="os_android"><i class="fa fa-android"></i> Android'
		} else if (e.match(/ubuntu/ig)) {
			os = '<span class="os_ubuntu"><i class="fa fa-desktop"></i> Ubuntu'
		} else if (e.match(/linux/ig)) {
			os = '<span class="os_linux"><i class="fa fa-linux"></i> Linux'
		} else if (e.match(/mac/ig)) {
			os = '<span class="os_mac"><i class="fa fa-desktop"></i> Mac OS X'
		} else if (e.match(/unix/ig)) {
			os = '<span class="os_unix"><i class="fa fa-desktop"></i> Unix'
		} else if (e.match(/symbian/ig)) {
			os = '<span class="os_nokia"><i class="fa fa-mobile"></i> Nokia SymbianOS'
		} else {
			os = '<span class="os_other"><i class="fa fa-desktop"></i> 其它操作系统'
		}
		return os+"</span>" ;
	}
//显UA结束

r1[1]/*.split(‘/’)[0]*/ 浏览器后面接的这种代码是用来截取版本号的,例如:UCBrowser|3.0.1354.9 通过这个可以只显示 UCBrowser|3 或者 UCBrowser|3.0 ,您可以自己设定截取位置,我也不会弄所以就加了/**/把截取注释掉,让它全都显示了。。。

然后搜索:

data-qqt-account="' + (r.qqt_account || "") + '">' + u(r.name) + "</span>"),

在后面添加:

t += "<span class=\"ua\">" + sskua(s.agent) + "</span><span class=\"ua\">" + sskos(s.agent) + "</span>",

如果搜索不到的话,请点此格式化embed.js后再次搜索!
然后在主题的css文件内(大约都是主题目录内的style.css文件)添加如下样式:

【查看代码】
/*多说UA开始*/
span.ua{
	margin: 0 1px!important;
	color:#FFFFFF!important;
	/*text-transform: Capitalize!important;
	float: right!important;
	line-height: 18px!important;*/
}
.ua_other.os_other{
	background-color: #ccc!important;
	color: #fff;
	border: 1px solid #BBB!important;
	border-radius: 4px;
}
.ua_ie{
	background-color: #428bca!important;
	border-color: #357ebd!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.ua_firefox{
	background-color: #f0ad4e!important;
	border-color: #eea236!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.ua_maxthon{
	background-color: #7373B9!important;
	border-color: #7373B9!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.ua_ucweb{
	background-color: #FF740F!important;
	border-color: #d43f3a!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.ua_sogou{
	background-color: #78ACE9!important;
	border-color: #4cae4c!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.ua_2345explorer{
	background-color: #2478B8!important;
	border-color: #4cae4c!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.ua_2345chrome{
	background-color: #F9D024!important;
	border-color: #4cae4c!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.ua_mi{
	background-color: #FF4A00!important;
	border-color: #4cae4c!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.ua_lbbrowser{
	background-color: #FC9D2E!important;
	border-color: #4cae4c!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.ua_chrome{
	background-color: #EE6252!important;
	border-color: #4cae4c!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.ua_qq{
	background-color: #3D88A8!important;
	border-color: #4cae4c!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.ua_apple{
	background-color: #E95620!important;
	border-color: #4cae4c!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.ua_opera{
	background-color: #d9534f!important;
	border-color: #d43f3a!important;
	border-radius: 4px;
	padding: 0 5px!important;
}


.os_vista,.os_2000,.os_windows,.os_xp,.os_7,.os_8,.os_8_1 {
	background-color: #39b3d7!important;
	border-color: #46b8da!important;
	border-radius: 4px;
	padding: 0 5px!important;
}

.os_android {
	background-color: #98C13D!important;
	border-color: #01B171!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.os_ubuntu{
	background-color: #DD4814!important;
	border-color: #01B171!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.os_linux {
	background-color: #3A3A3A!important;
	border-color: #1F1F1F!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.os_mac{
	background-color: #666666!important;
	border-color: #1F1F1F!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.os_unix{
	background-color: #006600!important;
	border-color: #1F1F1F!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
.os_nokia{
	background-color: #014485!important;
	border-color: #1F1F1F!important;
	border-radius: 4px;
	padding: 0 5px!important;
}
/*多说UA结束*/

如果您需要再美化一下,向本站的一样在前面加上地球、电脑、微信等小图标样式,请点此下载Font Awesome点此查看Font Awesome提供的全部小图标

它提供了479中小图标,只需要将下载到的 css 和 fonts 两个目录上传后(注意: css 和 fonts 需要上传至同一目录内),在header内引入上传后的CSS文件即可,非常方便!
注意:css目录内有两个css文件:

font-awesome.css
font-awesome.min.css

font-awesome.min.css 是 font-awesome.css 的压缩版!

然后在显UA代码中的 <span class=”ua_ie”> <span class=”os_xp”> 等后面添加如下的样式代码(不要汉字。。。):

地球

<i class="fa fa-globe"></i>

电脑

<i class="fa fa-desktop"></i>

微信

<i class="fa fa-weixin"></i>

安卓

<i class="fa fa-android"></i>

Linux

<i class="fa fa-linux"></i>

手机

<i class="fa fa-mobile"></i>

您还可以选择其他样式添加上去!

保存上传后就可以显示了,快去试试吧!

如果您觉得本文对大家有帮助,请一定记得点击下方的分享按钮召唤您滴小伙伴前来围观啊!我的那些事

点赞
  1. 小G乐园说道:

    博主您好啊,我按照您的做法,电脑端显示正常,手机端无法正常显示,这个是怎么回事呀?

    1. 搜索客说道:

      我这边看着你的都正常啊

      1. 小G乐园说道:

        没有吧,我跟着步骤设置了好多次,电脑端有时可以,但是手机不正常,现在重新安装了,恢复默认了。而我说的是显示UA的那个呀,现在的多说版本还可以正常显示吗,网上看到别的地方说多说更新了就无法使用您的这个教程了。请博主赐教呀

      2. 小G乐园说道:

        还有就是那个站长回复在手机端也看不到吧,博主您的网站我在手机端也无法看到这个,我就是想显示咯UA呀,像博主您这个真的是太棒了,很喜欢呀

        1. 搜索客说道:

          手机上换成 管理员 那个图片了

          1. 小G乐园说道:

            博主太给力了,我只能看着,还是失败

          2. 搜索客说道:

            我电脑坏了 现在不是随时都有电脑用 等有机会我帮你看看

          3. 小G乐园说道:

            好的,谢谢了

  2. Zou's说道:

    有直接改好的嘛...

    1. 搜索客说道:

      没有。。。

  3. Zou's说道:

    这个等级咋判断的?

    1. 搜索客说道:

      有些麻烦,电脑坏了,过段时间买了电脑我就会发出来[嘻嘻]

  4. 世界说道:

    有点意思啊

  5. walle说道:

    INFO Start processing
    ERROR Process failed: layout/_scripts/third-party/.DS_Store
    TypeError: Cannot read property 'compile' of undefined
    at View._precompile (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/lib/theme/view.js:104:22)
    at View (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/lib/theme/view.js:13:8)
    at new Theme._View.View (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/lib/theme/index.js:37:10)
    at Theme.setView (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/lib/theme/index.js:71:20)
    at /Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/lib/theme/processors/view.js:14:14
    at tryCatcher (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:502:31)
    at Promise._settlePromise (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:559:18)
    at Promise._settlePromise0 (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:604:10)
    at Promise._settlePromises (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:683:18)
    at Promise._fulfill (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:628:18)
    at Promise._resolveCallback (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:423:57)
    at Promise._settlePromiseFromHandler (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:514:17)
    at Promise._settlePromise (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:559:18)
    at Promise._settlePromise0 (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:604:10)
    at Promise._settlePromises (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:683:18)
    at Promise._fulfill (/Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/node_modules/bluebird/js/release/promise.js:628:18)
    at /Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/node_modules/bluebird/js/release/nodeback.js:42:21
    at /Users/zhanghang/Documents/blog/aiwalle.github.io/node_modules/hexo/node_modules/hexo-fs/node_modules/graceful-fs/graceful-fs.js:78:16
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:380:3)

    博主看看为啥报错啊,显示没问题

    1. 搜索客说道:

      看你这个应该不是多说方面的问题吧 错误信息里好像没有提到多说embed.js 我没玩过hexo我没用过github 所以实在是不了解啊[汗]

      1. walle说道:

        好的,谢谢啦

  6. CV视觉网说道:

    在embed.js写入,小图标不显示哇?

    1. 搜索客说道:

      FontAwsome那些文件加上了没

      1. CV视觉网说道:

        加在embed和WordPress,也是没用

        1. 搜索客说道:

          FontAwsome要引用的是css文件,加在head里面,不能加到别地方

          1. CV视觉网说道:

            加在header.php,,也是不行

    1. 搜索客说道:

      谢谢 以后常来玩哈

  7. 聪明的狗子说道:

    上看看效果啊

      1. 聪明的狗子说道:

        棒棒的 我的是集成的帝国不知道怎么弄了 蒙了

        1. 搜索客说道:

          显UA这个只要改多说的embed.js就行了,只要把embed.js地址改成你自己的就行了

          1. 聪明的狗子说道:

            地址前面带自己网址?

          2. 搜索客说道:

            对,改成自己的

          3. 聪明的狗子说道:

            嫩不嫩qq回我消息 你反应太慢了

  8. cjt说道:

    测试看看结果

  9. cjt说道:

    为什么我的博客里显示我是mac os x

    1. 搜索客说道:

      如果我这里显示是iPhone对的话,你就把你那里UA判断的iPhone放到mac前面就行了

      1. cjt说道:

        恩,谢谢。话说有没有什么显地理位置的方法

        1. 搜索客说道:

          显示是可以显示,但是由于宽带运营商的原因,ip对应的地址往往不是真实地址,我觉得这样的话做起来就没有意义了,所以就没弄

    1. 搜索客说道:

      亲刚才提交了UA吧?360极速模式那个?360全部浏览器都没有自己的UA标识,因为坏事做的太多了,怕被人识别出来屏蔽了,所以用的是chrome的UA,目前的手段只能判断成chrome

      1. 起点终站说道:

        噢哦噢。。原来是这样

  10. 张文庆说道:

    弄了半天显示不了颜色,仔细一看是主题的style,不是多说的

    1. 搜索客说道:

      UA的样式是要自己加的,为了方便,我都写进主题css中了

  11. 垚大大说道:

    我想问问这个等级是怎么弄的

    1. 搜索客说道:

      有些麻烦。。。php计算出某人在我站点的回复数量,然后embed.js获取这个数量显示对应等级

      1. 垚大大说道:

        下午研究了一下,原理能看懂

        1. 搜索客说道:

          那离成功就只有一步了

          1. 垚大大说道:

            我打算用邮箱相同的统计来算等级

          2. 搜索客说道:

            那我就完全蒙逼了。。。还不知道怎么获取多说邮箱

          3. 垚大大说道:

            评论表里有多说的用户的邮箱呀 ,我按邮箱统为条件查询统计每个邮箱的评论数呀

          4. 搜索客说道:

            我感觉那个不全。。。

          5. 垚大大说道:

            现在只是这样想的 还没开始做 ,等闲下来了在弄

          6. 搜索客说道:

            期待你的好消息!我也要重做这个,现在调用的是远程数据,因为没有专用接口,所以特别慢,以后买电脑了就把等级改回本地

    1. 搜索客说道:

      不对的话可以点上面链接报告UA,不过对于搜狗浏览器我还是挺有信心滴

      1. cd杨浩说道:

        博主您好,我的后台是django,然后我导入多说是通过一个django标签,这样的话,我怎么按照您所说的来DIY呢?

        1. 搜索客说道:

          这个我也不太清楚,但是大体上都相同,就是把多说的embed.js改成你自己的地址

          1. cd杨浩说道:

            好的,谢谢您。

  12. 啦哩啦哩说道:

    楼主没有发等级怎么弄

  13. 朱凯说道:

    看了你的教程,也实现了效果www.p700.cn 求友链

    1. 搜索客说道:

      我目前没有电脑用,坏了一年半了,很久都没更新过了,友链的事等我有电脑时候再说

  14. 一日说道:

    现在多说的js和以前不一样了,判断ua的那个函数要加在js的什么位置呀?

    1. 搜索客说道:

      这可真是出难题了。。。我现在没有电脑用,亲可以按照文末提示关注本站公众号并订阅本文,以后我更新了就会通知您,您也可以先自己尝试着改改

发表评论

电子邮件地址不会被公开。 必填项已用*标注