站长资源
中国站长网站

大众点评电话不给复制?

今天有个做销售的朋友向我诉苦,说大众点评电话号码不给复制。我打开一看号码不是都显示在上面吗,如图

其实我一复制就发现了猫腻,因为复制的色块都不一样,心里想着就打开了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油猴脚本插件,这插件干吗的?就是让你自己写脚本运行的,当然你也可以开发个插件了,不过有点不太值当的,所以简单的脚本用这个插件还是很不错

油猴插件下载,请看上一篇

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确定一下吧

奥利给!就这样吧,其实就是为了写篇原创,大众点评对不住了

本文出处:来自互联网信息共享,请勿相信收费信息站长资源 » 大众点评电话不给复制?

评论 抢沙发

评论前必须登录!