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;
}代码中已集成更多主流搜索引擎的域名特征,用户可根据实际需求自行扩展搜索引擎列表。
作者最新文章
UmiJS 项目构建速度优化与打包体积精简技巧
2026-11-04 22:37:09
原生JS操作DOM与Vue/React虚拟DOM的本质区别
2026-11-04 17:52:27
怎么使用console.group和table优化JS日志可读性
2026-11-03 23:14:34
基于AST抽象语法树的JS代码反混淆实战教程
2026-11-03 21:22:24
JS手机号输入校验的性能优化与用户体验提升
2026-11-03 19:19:19
