<legend id="0xz0y"><i id="0xz0y"></i></legend>

<legend id="0xz0y"></legend>

    <optgroup id="0xz0y"></optgroup>
    <optgroup id="0xz0y"></optgroup>
    杨小杰博客(Youngxj)提供免费教程下载和网站搭建技术教程,主要分享和发布网站源码,致力创造一个高质量网络资源教程的分享平台

    搜索引擎来路提醒小窗

    Young小杰2018-6-27 17:15网站搭建(6)1864查询中……小标签: html5 源码分享 原创

    看到张戈博客的来路提醒小窗口功能很好玩,所以自己利用Notification和layui的提示窗口写了一个来路提醒的小窗。

    具体效果如下:

    如果桌面浏览器不允许Notification通知权限或者不支持Notification就会使用layerui(什么是Notification?)

    layer1.png


    当桌面浏览器允许Notification通知权限后就会使用Notification

    html5.png

    下面是源码

    <?php
    /**
     * 获取网站来路并分析
     * @author Youngxj <blog@youngxj.cn>
     * @time   2018年6月27日
     * @param  string $referers 自定义ua
     * @return strting/bool     输出获取到的来路
     */
    function get_referer($referers=''){
    	// 更改为自己的网址
    	// 避免来路重复
    	$localhost = 'www.7899tah.cn';
    	/*获取网站来路*/
    	$referer = $referers ? $referers : $_SERVER['HTTP_REFERER'];
    	if(!$referer){
    		return false;
    	}
    
    	/*获取网站host*/
    	$str = parse_url($referer);
    	if (!$str['host']||$str['host']==$localhost) {
    		return false;
    	}
    	$url = $str['host'];
    
    	/*关键词判断类型*/
    	if(strpos($url,'baidu') !== false){
    		$url_str = '百度搜索';
    	}elseif (strpos($url,'sogou') !== false) {
    		$url_str = '搜狗搜索';
    	}elseif (strpos($url,'sm') !== false) {
    		$url_str = '神马搜索';
    	}elseif (strpos($url,'bing') !== false) {
    		$url_str = '必应搜索';
    	}elseif (strpos($url,'google') !== false) {
    		$url_str = '谷歌搜索';
    	}elseif (strpos($url,'so') !== false) {
    		$url_str = '360搜索';
    	}elseif (strpos($url,'easou') !== false) {
    		$url_str = '宜搜搜索';
    	}elseif (strpos($url,'yahoo') !== false) {
    		$url_str = '雅虎搜索';
    	}else{
    		/*如果以上都找不到则使用来路域名并截取字数*/
    		if (strlen($url)>5) $url_str=substr($url,0,10) . '...';
    	}
    	return $url_str;
    }
    ?>
    <script src="layui/layui.js"></script>
    <link rel="stylesheet" type="text/css" href="layui/css/layui.css">
    <?php if(get_referer()){?>
    <script>
    	var popNotice = function() {
    		//获取用户授权状态
    		if (Notification.permission == "granted") {  
    			var notification = new Notification("欢迎来自<?php echo get_referer();?>的朋友", {  
                    //很明显这是正文
                    body: '若当前文章未能解决您的问题,您可以先尝试站内搜索,当然也可以给我留言喔(^_^)!',
                    //很明显这是图标  
                    icon: 'https://ww2.sinaimg.cn/large/005BYqpgly1fsnpxsctd7j305k05kwec.jpg'  
                });  
                //消息被点击事件
                notification.onclick = function() {  
                	/*window.open("<?php echo $_SERVER['HTTP_REFERER'];?>");*/  
                };  
    			//消息被关闭事件
    			notification.onclose  = function() {
    				notification.close();      
    			};
    			//消息出现错误事件
    			notification.onerror  = function() {  
    				alert('上帝也不知道发生了什么');  
    				notification.close();      
    			};
    		}      
    	};  
    
    	if (window.Notification) {
    		if (Notification.permission == "granted") {
    			popNotice();  
    
    		}else if( Notification.permission != "denied"){
    			Notification.requestPermission(function (permission) {  
    				popNotice();  
    			});  
    		}  
    	} else {
    		echo_layer();
    	}  
    	function echo_layer(){
    		layui.define(['layer', 'form'], function(exports){
    			var layer = layui.layer
    			,form = layui.form;
    
    			layer.open({
    				title: '<i class="layui-icon layui-icon-face-smile" style="color: #1E9FFF;"></i> 欢迎来自<?php echo get_referer();?>的朋友'
    				,content: '<i class="layui-icon layui-icon-group" style="color: green;"></i>若当前文章未能解决您的问题,您可以先尝试站内搜索,当然也可以给我留言喔(^_^)!'
    				,offset: 'rb'
    				,time:5000
    				,anim:2
    				,moveOut: true
    				,maxmin: true
    				,shade: 0
    				,btn: ['确认', '关闭']
    				,yes: function(index, layero){
    					/*window.open("<?php echo $_SERVER['HTTP_REFERER'];?>");*/  
    				}
    				,btn2: function(index, layero){
    				}
    				,cancel: function(){ 
    				}
    			}); 
    
    			exports('index', {}); 
    		});    
    		
    	}
    	Notification.requestPermission().then(function(result) {
    		if (result === 'denied') {
    			echo_layer();
    			console.log('许可不获批准。允许重试');
    			return;
    		}
    		if (result === 'default') {
    			echo_layer();
    			console.log('许可请求被驳回。');
    			return;
    		}
    	});
    </script>
    <?php }?>
    中间用到的layui.js和layui.css请自行官网下载引入。

    说一下emlog如何引入这个

    1、先把<?php function get_referer($referers=''){.....}?>整段函数复制到module.php

    2、然后去header.php引入layui.js和layui.css

    3、之后再把<?php if(get_referer()){?>....<?php }?>整段代码放到footer.php即可

    4、最后使用搜索引擎或者友情链接进行测试来路测试。

    ps:小杰还没有写搜索关键词判断,后面有时间再搞吧。先把框架发在这里,技术大佬可以自行修改样式


    发表评论:

    发表评论:

  • 林哲 Lv 5

    很不错

  • avatar

    wordpress的使用方法也可以写一写

  • 晨曦 Lv 1

    ui代改进

  • 逗哔鱼 Lv 1

    我进来的时候咋没弹窗啊

    • Young小杰 站长

      回复了逗哔鱼:没有来路。。

  • 手机扫描二维码
    阅读体验更佳
    管家婆马报玄机彩图67期 青浦区| 扎兰屯市| 柞水县| 梨树县| 南漳县| 越西县| 仁布县| 社旗县| 大同县| 册亨县| 安仁县| 沽源县| 武威市| 石门县| 民丰县| 兰西县| 盐边县| 峨边| 湘潭县| 临武县| 台东县| 巴彦县| 桑植县| 紫金县| 余干县| 招远市| http://www.cyjehs.cn 会宁县| 南康市| 台南市| 江津市| 平武县| 夏邑县| 海宁市| 齐齐哈尔市| 连平县| 宜黄县| 长沙县| 涞水县| 虎林市| 东山县| 论坛| 崇阳县| 保德县| 运城市| 钦州市| 沙洋县| 丹棱县| 漳浦县| 岱山县| 宁德市| 北流市| 安泽县| 彰化县| 崇文区| 高平市| http://www.bLoeak.cn 通海县| 金塔县| 墨脱县| 吕梁市| 石屏县| 瑞金市| 大连市| 唐河县| 青冈县| 怀远县| 交口县| 喀什市| 紫阳县| 延庆县| 徐汇区| 萨迦县| 汕头市| 兴化市| 郴州市| 岗巴县| 石泉县| 洞口县| 浦东新区| 金寨县| 武冈市| 大荔县| 乐安县| 西昌市| 兖州市| 芷江| 开化县| 信阳市| 额济纳旗| 青河县| http://www.hggrgp.cn 东莞市| 龙陵县| 巩义市| 张家界市| 河北省| 宁武县| 布尔津县| 泌阳县| 东方市| 会宁县| 江津市| 策勒县| 那曲县| 定州市| 上饶市| 体育| 五河县| 铜山县| 嘉黎县| 山东| 平阳县| 岳阳市| 迁安市| 富宁县| 夏邑县| 黔南| 麻城市| 理塘县| 玉树县| http://www.dbrfye.cn 都匀市| 咸阳市| 唐河县| 海原县| 长乐市| 关岭| 哈巴河县| 平定县| 天全县| 珲春市| 平顶山市| 辽源市| 泰宁县| 建水县| 双峰县| 乡城县| 恩平市| 湖州市| 南部县| 永和县| 高青县| 镇江市| 同江市| 攀枝花市| 华阴市| 雷波县| 余姚市| 行唐县| 秀山| http://tanehL.cn 北安市| 亳州市| 奉贤区| 岳阳市| 齐河县| 都江堰市| 屯门区| 泸州市| 西峡县| 务川| 上虞市| 浙江省| 稷山县| 佛学| 琼中| 富源县| 鄂托克旗| 时尚| 新津县| 临夏县| 芒康县| 潮州市| 朝阳县| 葫芦岛市| 陆良县| 晋城| 温宿县| 长白| http://www.crwbah.cn 清河县| 临泽县| 桑日县| 祁东县| 咸宁市| 雅江县| 措勤县| 郧西县| 思茅市| 吉林省| 炉霍县| 剑阁县| 道真| 清苑县| 林西县| 屏边| 旌德县|