个性化 多说显示,让多说显示评论者的 UA,貌似教程很多。
比如: 我的那些事 - 多说回复后显示浏览器及操作系统信息(Useragent) 这里。
但是方案都是 本地化 embed.js 然后修改 embed.js 完成。
不想本地化 embed.js ,搜索了一下网络, 发现有不本地化 用 JS Hook 方式修改的办法,见
https://github.com/huhuime/make_duoshuo_show_ua
但是,根据这个修改后无效, 检测了多说的 embed.js 代码,发现是因为版本更新导致变量失效,修改 e.agent 为e.post.agent 即可。
简单整理如下。
在 多说 自己的 JS 导入后面的任意位置添加以下代码:
<script src="您的网站地址/ua-parser.min.js"></script>
<script type="text/javascript">
if (typeof DUOSHUO !== 'undefined')hookDUOSHUO_tp();
else $('[src="http://static.duoshuo.com/embed.js"]')[0].onload=hookDUOSHUO_tp;
function hookDUOSHUO_tp(){
var _D_post=DUOSHUO.templates.post
DUOSHUO.templates.post=function (e,t){
var rs=_D_post(e,t);
var agent=e.post.agent;
if(agent&&/^Mozilla/.test(agent))rs=rs.replace(/<\/div><p>/,show_ua(agent)+'</div><p>');
return rs;
}
}
function show_ua(string){
console.log(string)
$.ua.set(string);
var sua=$.ua;
if(sua.os.version=='x86_64')sua.os.version='x64';
return '<span class="this_ua platform '+sua.os.name+'">'+sua.os.name+' '+sua.os.version+'</span><span class="this_ua browser '+sua.browser.name+'">'+sua.browser.name+'|'+sua.browser.version+'</span>';
}
</script>
完整教程可以见 : make_duoshuo_show_ua
效果展示可以在本日志下留言以观效果。
相对应的 CSS 可以在
https://github.com/easunlee/make_duoshuo_show_ua/blob/master/src/show.ua.css
获取。
ua-parser.min.js 下载可以在本站 http://static.easunlee.org/js/ua-parser.min.js
或者这里: https://github.com/faisalman/ua-parser-js
折腾无罪。
生命在于折腾。不过悲剧的是下次官方JS再次更新,就再次不灵了。
居然还可以这样?!生命不息,折腾不止啊!
殊途同归。 都是折腾。哈哈。
本地化后的折腾灵活度要高一点。 不本地化就要仔细分析代码~
两段代码都需要刷新页面才能显示请问如何解决呢?期待您的答复。
不需要刷新哦。如果要刷新尝试把这些js 放置在多说自己的js后面。
貌似解决了,谢谢
我刚去了你的网站,貌似你用了 pjax 无刷新技术? 如果是这个话,重新初始化用
DUOSHUO.EmbedThread('.ds-thread');即可。
好的。非常感谢:)
不客气:)
这两天多说还是有问题,登陆一直失败
是的。 多说产品不错,可惜运营跟不上。
本地化以后就不用担心更新问题了
## 我的看法
JS Hook 的方法确实更加通用,之前也根据搜索客的方法做了研究,embedded.js其实多说团队更新的频率并不高,如果本地化修改配置也有利于GitHub这类静态Blog的智能加速和https加密浏览,只要能加快网页访问速度,过程复杂一些也不是大问题。
## 参考文章
多说自定义CSS动感头像和多说评论显示User Agent的那些小事http://wsgzao.github.io/post/duoshuo/
恩。本地化后还可以轻微提速。
多说的本地化稍微复杂一点,JS_hook 貌似改动更小。
殊途同归。其实就一样了。
这几天,多说状态堪忧。
很有用,学习了@!
我来试试360是不是依然伪装成谷歌.
你确认用的 360 ? 伪装的够全,一点 360 信息都没有。全部信息如下:
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36"
360猎豹,现在都把信息取消了。。。
你用的是猎豹。 信息中有猎豹的特质。全部信息如下
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSER"
==
而 360 什么信息都没有的。