今天有个做销售的朋友向我诉苦,说大众点评电话号码不给复制。我打开一看号码不是都显示在上面吗,如图
其实我一复制就发现了猫腻,因为复制的色块都不一样,心里想着就打开了F12看一下代码,如图
这丫的,真是良心坏坏的了,你号码都显示了还不给人复制,有这个必要吗,照着输入不也一样吗,所以啊,这种限制真是没啥意思。吐槽归吐槽,我们来看看咋办吧。
做过前端的朋友第一眼肯定意识到这个是字体标,没错,但是总感觉哪里不对,不都会用icon开头吗,不过看这种用法有点像unicode字体标,但是那也应该是&#x…这些吧,都是框框是什么鬼哦。
试着当成汉字转一下unicode看看
var phone=$(".expand-info.tel").text(); phone.replace(/[^\u0000-\u00FF]/g,function($0){return escape($0).replace(/(%u)(\w{4})/gi,"&#x$2;")
一看不要紧,还真给转换出来了,结果如下
1-
这样我们就能看得懂了,这不就是Unicode么,管他什么字体文件,对应这替换不就得了,写个替换的函数吧
function replace_num(phone_){ var phone=phone_.replace(//gi,"0"); phone=phone.replace(//gi,"2"); phone=phone.replace(//gi,"3"); phone=phone.replace(//gi,"4"); phone=phone.replace(//gi,"5"); phone=phone.replace(//gi,"6"); phone=phone.replace(//gi,"7"); phone=phone.replace(//gi,"8"); phone=phone.replace(//gi,"9"); phone=phone.replace(/电话:/gi,"复制:"); return phone }
毕竟数字也就是0-9之间,而且1还不用替换,很快我就凑齐了这几个数字标的unicode编码
讲到这里相信大体上有理想的青年应该明白了,不过我还是决定继续帮大家一把
比如有了你的代码有毛用啊,怎么替换呢,每次打开在控制台输入吗,那还不如照着输入算了。。。
所以就用到了chrome油猴脚本插件,这插件干吗的?就是让你自己写脚本运行的,当然你也可以开发个插件了,不过有点不太值当的,所以简单的脚本用这个插件还是很不错
油猴插件下载,请看上一篇
附上脚本的全部代码,大家网速慢的话就写个定时器延迟一下执行,必定是根据dom的,得等他加载完才可以
function replace_num(phone_){ var phone=phone_.replace(//gi,"0"); phone=phone.replace(//gi,"2"); phone=phone.replace(//gi,"3"); phone=phone.replace(//gi,"4"); phone=phone.replace(//gi,"5"); phone=phone.replace(//gi,"6"); phone=phone.replace(//gi,"7"); phone=phone.replace(//gi,"8"); phone=phone.replace(//gi,"9"); phone=phone.replace(/电话:/gi,"复制:"); return phone } window.onload=function(){ setTimeout(function(){ (function() { 'use strict'; var $, jQuery; $ = jQuery = window.jQuery; var phone_dom=$(".expand-info.tel"); var phone=phone_dom.text(); function Change(pValue){ return pValue.replace(/[^\u0000-\u00FF]/g,function($0){return escape($0).replace(/(%u)(\w{4})/gi,"&#x$2;")}); } console.log('aa',Change(phone)) var phoneUtf = Change(phone); phone=replace_num(phoneUtf); console.log(phone); phone_dom.text(phone); // Your code here... })(); },2000) }
运行完是个啥样,我们来看看
看到复制的这么顺利,色块都一样我就知道搞定了,不过再打开F12确定一下吧
奥利给!就这样吧,其实就是为了写篇原创,大众点评对不住了
评论前必须登录!
注册