js的屏蔽地區和屏蔽pc端的方法


其實不需要后台代碼也可以獲取地區信息的,就算是后台代碼,也得需要引用一些第三方庫提供免費的api接口才可以,最后還是反序列化才能得到想要的數據,那干嘛不直接找,提供好json格式的api接口,拿來js就直接用呢?

我最開始了解到一些大型網站提供ip庫應該是屬淘寶ip最全面了吧;確實挺全的 不過缺點是 短時間內同一ip不能訪問頻率過快,還有就是ajax不能直接獲取他的數據,必須通過后端代碼來實現.

因此,我在網上找到了下面這個接口 感覺挺好用的,分享給你們。

直接通過異步訪問,不需要后端代碼就可以獲取地址詳細信息,很全面,感覺比淘寶ip庫還全面。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

<script type="text/javascript" src="php高級/jquery-3.4.1.min.js"></script>

<!--搜狐ip庫:http://pv.sohu.com/cityjson(默認GBK編碼,修改編碼加參數 ?ie=utf-8)-->
<script type="text/javascript" src="http://pv.sohu.com/cityjson"></script>
<script type="text/javascript">
$(function(){
  var ip = returnCitySN.cip;
  console.log("通過搜狗ip庫得到當前ip為:"+ip);

  $.get("http://api.online-service.vip/ip3?ip="+ip,function(e){
    console.log(e); //打印日志信息。根據日志信息獲取自己需要的字段
    alert('你當前ip為:'+ip+';所屬國家:'+e.data.country+';省:'+e.data.province+';市:'+e.data.city);
  })

//第二種:下面這條api接口通過的信息就比較全面了,感覺比淘寶的還要好用得多
  $.ajax({
    url:"http://api.online-service.vip/ip?ip=" + ip ,
    type:'GET',
    dataType:'JSON', // 處理Ajax跨域問題
    success: function(e){
      console.log(e); //打印日志信息。根據日志信息獲取自己需要的字段
      alert(e.city.geoname_id);
    }
  });
});
</script>

 

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

以上代碼僅寫在html頁面即可!常用來屏蔽一些地區,限制用戶訪問,判斷沒有寫,數據都得到了,判斷語句自己寫很簡單的了。

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

<script>
/** 屏蔽鼠標右鍵 */
document.oncontextmenu = function(){return false;}


/** 屏蔽f12 */
document.onkeydown=function (e){
  var currKey=0;
  var evt = e||window.event;//獲取event對象
  //獲取事件源 :keyCode鍵盤按鍵Unicode碼,於瀏覽器兼容問題給3種選擇,
  currKey=evt.keyCode||evt.which||evt.charCode;//如:keyCode無法在火狐瀏覽器用,which就可以
  if (currKey == 123) {//keycode >=112 && keycode <=123 屏蔽f1-f12功能鍵 (keycode ==8)屏蔽退格健
    window.event.cancelBubble = true;//用來阻止瀏覽器默認的事件冒泡行為
    window.event.returnValue = false;//禁止或取消了請求,不執行任何提交效果
  }
  $(".sp").html("你按下鍵盤的Unicode碼為:"+currKey+",對應的字符是:"+String.fromCharCode(currKey));
}
</script>

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

屏蔽手機端或者想屏蔽pc端:如下

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

var system = {};
var p = navigator.platform;//獲取硬件設備
var u = navigator.userAgent;//獲取瀏覽器信息

system.win = p.indexOf("Win") == 0;//win手機端
system.mac = p.indexOf("Mac") == 0;//蘋果手機
system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);
if (system.win || system.mac || system.xll) {//如果是PC轉
  if (u.indexOf('Windows Phone') > -1) {
    //屏蔽手機端
    alert("被屏蔽對象");
  }
}

我在網上找的上面這個效果不是很好 了解一下,使用下面的代碼,

<script>
    /** 
     * 移動端相關數據 =>> mobileUtil 對象
     * 是否是安卓  : isAndroid
     * 是否是IOS   : isIOS
     * 是否是移動端: isMobile
     * 設備平台    : platform [ ios 或 android ]
     * 事件類型    : tapEvent [ tapEvent 或 click ]
     * 系統版本號  : version [ 如: ios 9.1 或 andriod 6.0 ]
     * 是否支持 touch 事件: isSupportTouch
     */
    var mobileUtil = (function (window) {
        var UA = window.navigator.userAgent,
            isAndroid = /android|adr/gi.test(UA),
            isIOS = /iphone|ipod|ipad/gi.test(UA) && !isAndroid,
            isMobile = isAndroid || isIOS,
            platform = isIOS ? 'ios' : (isAndroid ? 'android' : 'default'),
            isSupportTouch = "ontouchend" in document ? true : false;

        var reg = isIOS ? (/os [\d._]*/gi) : (/android [\d._]*/gi),
            verinfo = UA.match(reg),
            version = (verinfo + "").replace(/[^0-9|_.]/ig, "").replace(/_/ig, ".");

        return {
            isIOS: isIOS,
            isAndroid: isAndroid,
            isMobile: isMobile,
            platform: platform,
            version: parseFloat(version),
            isSupportTouch: isSupportTouch,
            tapEvent: isMobile && isSupportTouch ? 'tapEvent' : 'click'
        };
    })(window);

    if(mobileUtil.isMobile){
    	alert("你當前屬於手機端訪問,是我要屏蔽的對象");
    };
</script>

  

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM