给广告一个关闭的按钮

PHPABC JavaScript, WordPress 1,166 次浏览 , , 1条评论

很多的站点不管流量,点击是多是少,站长们总是喜欢放些放广告,虽然大多数都挣不到钱,但挣一分是一分.所以从这个方面讲,放置一定量的广告无可厚非.另一角度从用户体验来讲总是多少的要受到影响.比如造成页面的混乱,加载速度的延长等.

我是个比较喜欢整洁的人.对页面比较乱的网页有一种烦躁感.比如很花哨的QQ空间等.因此我几乎不去,虽然现在QQ空间对Firefox的支持已经做得很好了.但是页面的混乱还是让我无法忍受.同样对于广告满天飞的下载站,连找个链接都困难的情况来说,我更是郁闷.所以以下文字可能对喜欢整洁和关注用户体验的朋友有用.

以下实例针对WordPress.

实现的原理是写入Cookie非常简单.这个由javascript脚本来完成.然后由php判断Cookie.(我认为这种方式比较好)

首先,我们来创建个写Cookie的js.代码如下:

(function(){
function SetCookie(c_name,value,expiredays){
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+"="+escape(value)+
		((expiredays==null)?"":";expires="+exdate.toGMTString());
}
window['PHC'] = {};
window['PHC']['SetCookie'] = SetCookie;
})();

这里我用到了mg12介绍的JavaScript的命名空间.具体的介绍请移步查看.

然后我们在广告代码的相应位置插入一个关闭的按钮,这些简单的html代码我就不细说了.

由于我的主题载入了jQuery框架.因此一下代码是基于jQuery的.当然你也可以用其他的办法.只是需要多敲点代码.
好了以下是我的代码.请参照相应的DOM结构查看.(每个人的情况都不同.不可通用.只能这样了)

$('.singleggad .close').click(function(){
	$('.singleggad').slideUp();
	PHC.SetCookie('philna_singlepage_ad','no',2);
	setTimeout(function(){
		alert('This advertisement will no longer display in two days!')},1000);
});

以上代码的效果是,点击关闭.广告被隐藏.同时写入Cookie,名称为philna_singlepage_ad,值为:no,有效期为2天,然后延时1秒钟后弹出警告告知之访客.这样一个Cookie便写入了.

然后我们要利用刚刚写入的Cookie来判断是否显示广告.我推荐使用php的方法.代码如下:

<?php if(!$_COOKIE['philna_singlepage_ad']=='no'):?>
<!--这个放你的广告代码-->
<?php endif;?>

这样处理有个好处,如果判断为不显示广告,那么整个广告代码都不会显示出来.当然就不会再去下载广告代码,浪费用户等待时间.网上有部分介绍,依然是通过js判断Cookie并隐藏广告.这个方法很糟糕,至少要等DOM下载完了你的js才能工作.这就意味着浪费的用户等待时间,并且效果还不好.会出现广告出现,又很快消失的情况.

一条评论

  1. kaikai 2015年12月10日 17:58 回复

    [可爱]

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Go