JS实现搜索引擎来路识别与PC端跳转屏蔽

作者:沉舟时间:2026-10-31 09:35:24浏览:346

本文介绍如何使用JavaScript判断访问者是否来自搜索引擎以及是否为PC设备,并在满足条件时执行PC端跳转屏蔽操作。通过检测referrer字段识别主流搜索引擎,结合User-Agent判断设备类型,最终调用特定函数实现页面跳转控制,适用于需要区分移动端与PC端访问场景的网站开发。

JS实现搜索引擎来路识别与PC端跳转屏蔽

代码中使用了两个函数 isSearchEngineReferrer() 和 isPcDevice() 来判断搜索引擎来路和PC设备,当满足条件时就会调用 blockPcRedirect() 函数来屏蔽PC跳转。最后在页面加载时调用这些函数。

// 判断是否为搜索引擎来路
function isSearchEngineReferrer(referrer) {
  var searchEngines = ["google", "bing", "yahoo", "baidu", "sogou"];
  for (var i = 0; i < searchEngines.length; i++) {
    if (referrer.indexOf(searchEngines[i]) !== -1) {
      return true;
    }
  }
  return false;
}

// 判断是否为PC设备
function isPcDevice() {
  var userAgentInfo = navigator.userAgent;
  var agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
  for (var i = 0; i < agents.length; i++) {
    if (userAgentInfo.indexOf(agents[i]) > 0) {
      return false;
    }
  }
  return true;
}

// 屏蔽PC跳转
function blockPcRedirect() {
  if (isPcDevice()) {
    window.location.href = "about:blank";
  }
}

// 在页面加载时调用
window.onload = function() {
  var referrer = document.referrer.toLowerCase();
  if (isSearchEngineReferrer(referrer)) {
    blockPcRedirect();
  }
};

以下是经过优化和修正后的完整代码示例。

function isSearch() {
var referrer=document.referrer;
  var searchEngines = ['google.','baidu.','sm.','soso.','so.','360.','yahoo.','youdao.','sogou.','bing.'];
  for (var i = 0; i < searchEngines.length; i++) {
    if (referrer.indexOf(searchEngines[i]) !== -1) {
      return true;
    }
  }
  return false;
}

代码中已集成更多主流搜索引擎的域名特征,用户可根据实际需求自行扩展搜索引擎列表。

作者最新文章