澳门皇冠金沙网站-澳门皇冠844网站

热门关键词: 澳门皇冠金沙网站,澳门皇冠844网站

Javascript限制网页只能在微信内置浏览器中访问,

那么难题就来了,那么些网页首先提到到了运动web前端开辟,作者先行挑选了用HTML5 bootstrap组合来落到实处页面的赏心悦目效果,前端别的的任务交给javascript消除(这里自身是完全选择原生javascript代码,未有选取任何的框架,因为思虑到手提式有线电电话机加载网页的进程自然就慢,何况框架中过多用不到的功能也会随网页一齐加载,耗成本户流量)。

1. 查看userAgent

<pre>
<script type="text/javascript">
alert(navigator.userAgent);
</script>
</pre>

查看到的结果:

图片 1

20141110085236663666.png

着重音讯:
MicroMessenger/6.0.0.50_r844973.501,斜杠前面包车型地铁这一串正是小编当下利用的微信的本子号,后面则应该是微信的四个唯有标记。

Javascript限制网页只好在微信内置浏览器中访问,javascript浏览器

那么难题就来了,那个网页首先提到到了移动web前端开采,笔者事先挑选了用HTML5 bootstrap组合来贯彻页面包车型大巴姣好效果,前端别的的职务交给javascript化解(这里本人是一心使用原生javascript代码,未有应用任何的框架,因为考虑到手提式有线电话机加载网页的进程自然就慢,何况框架安徽中国广播公司大用不到的作用也会随网页一齐加载,耗成本户流量)。

一体作用都就绪未来,客户试用也感到很乐意,之后笔者就把代码提交到了正规化的服务器上。可是,对方又意想不到提到了好几:你做的页面确实挺美丽的,兼容性也不错,不过那些页面用微型Computer上的浏览器也是能够访问的,那么其余人就可以很随便地翻看页面包车型大巴源代码,进而copy整个页面,能或无法有啥样点子防止那或多或少?那么难点就又来了,笔者是首先次做微信一遍开荒,还没碰着过这么的供给,怎么化解啊?

一下子想不出来,后来本身就把那个难点先放了放,去做后台的一对专门的学问。在做后台的贰个数量搜集作用时,PHP代码个中用到了$_SERVER['HTTP_USER_AGENT']其一参数,作者蓦然想到浏览器访谈网页时都会发送一个UserAgent给服务器,它里面满含了一部分浏览器及用户操作系统的中坚音信,既然微信有内置浏览器,那么用微信浏览网页时这么些UserAgent里面会不会带上和微信相关的独有的标记呢(究竟Tencent那般大个集团,而微信又是他俩的为主产品之一)?干脆用代码打字与印刷一下它的UserAgent来一探究竟,javascript代码如下:

复制代码 代码如下:

<script type="text/javascript">
    alert(navigator.userAgent);
</script>

在自己的手提式无线电话机上获取了如图所示的结果:

图片 2

这一眨眼之间间果然还确实看到了分歧样的地点,相信聪明的恋人也曾经意识了,没有错,正是其一事物:MicroMessenger/6.0.0.50_r844973.501,斜杠后边的这一串便是自身当下选拔的微信的本子号,前边则应该是微信的三个独有标志了。其实本人一开首作为了MicroMessage,想着汉语翻译过来是“微音讯”的乐趣,但稳重一看开采不是的,后边查了词典才了然Messenger这么些词有“报信者,送信者”的意味,也就不感觉古怪了。那一个标记应该来讲是别的浏览器不会某个,那么化解方案就来了,请看代码:

复制代码 代码如下:

<script type="text/javascript">
    // 对浏览器的UserAgent进行正则相配,不分包微信唯有标记的则为其余浏览器
    var useragent = navigator.userAgent;
    if (useragent.match(/MicroMessenger/i) != 'MicroMessenger') {
        // 这里警告框会阻塞当前页面继续加载
        alert('已禁止本次访问:您必须利用微信内置浏览器访谈本页面!');
        // 以下代码是用javascript强行关闭当前页面
        var opened = window.open('about:blank', '_self');
        opened.opener = null;
        opened.close();
    }
</script>

这段代码在Android、中兴、华为平板、PC上都实行了测量试验,只要不是在微信内部张开网页的,首先就能够弹出地点十二分警告框,此时背后的页面是白手的,什么都还没加载,当点击警告框的规定开关之后,最终三行代码将强行关闭当前页面。OK,到此地终于完成了用户原来的情趣了,能够回顾收工了。

等等,真的能够如此收工了么?你分明不会有任何主题材料?当然不是,其实那些方法并不会令你高枕而卧,因为对此伪造的UserAgent,仍是能够绕过那条限制的,总的来讲正是防君子不防小人了,大家驾驭。当然,要是哪位朋友有缓和这一个难题的更加好点子,还劳苦在底下钻探告知,技巧在于彼此的享用和交换嘛,呵呵。

那么难点就来了,这些网页首先提到到了移动web前端开垦,小编先行挑选了用...

凡事功用都就绪以往,客户试用也感觉很满足,之后笔者就把代码提交到了专门的学业的服务器上。不过,对方又猛然提到了一些:你做的页面确实挺了不起的,包容性也没有错,不过那个页面用Computer上的浏览器也是可以访问的,那么其余人就足以很随意地翻看页面包车型大巴源代码,进而copy整个页面,能否有哪些办法制止这或多或少?那么难题就又来了,笔者是第贰遍做微信三次开拓,还没碰到过那样的须要,怎么解决啊?

2. 限量其余浏览器代码

<pre>
// 对浏览器的UserAgent举办正则相称,不包含微信只有标记的则为另外浏览器
<script type="text/javascript">
var useragent = navigator.userAgent;
if (useragent.match(/MicroMessenger/i) != 'MicroMessenger') { // 这里警告框会阻塞当前页面继续加载
alert('已明令禁止本次访谈:您必须使用�微信内置浏览器访问本页面!'); // 以下代码是用javascript强行关闭当前页面

var opened = window.open('about:blank', '_self');
opened.opener = null; opened.close();
}
</script>
</pre>

转载注明:http://www.webmy.cn/News/20141110/2639075347.shtml

转眼间想不出去,后来自家就把那个标题先放了放,去做后台的片段业务。在做后台的三个数额采撷功效时,PHP代码当中用到了$_SERVER['HTTP_USER_AGENT']本条参数,小编忽地想到浏览器访谈网页时都会发送三个UserAgent给服务器,它里面满含了一部分浏览器及用户操作系统的宗旨音信,既然微信有内置浏览器,那么用微信浏览网页时那一个UserAgent里面会不会带上和微信相关的独有的标志呢(究竟Tencent如此大个公司,而微信又是她们的为主产品之一)?干脆用代码打印一下它的UserAgent来一探毕竟,javascript代码如下:

复制代码 代码如下:

<script type="text/javascript">
    alert(navigator.userAgent);
</script>

本文由澳门皇冠金沙网站发布于前端开发,转载请注明出处:Javascript限制网页只能在微信内置浏览器中访问,