배너 클릭수를 제한하는 소스를 짜고 싶습니다.
본문
제가 구현하려는 것은 두가지입니다.
①제 사이트의 배너를 한 아이피, 쿠키당 하루에 2번까지만 누를 수 있도록.
( 2번 넘게 누르려고 하면 해당 IP,쿠키 사용자는 배너가 보이지 않거나 다른 배너로 체인지 )
②두번째는 제 사이트의 배너를 전체 사용자가 하루에 제가 지정해놓은 숫자만큼만
누를 수 있고 해당 횟수가 초과되면 제 사이트의 배너가 전체 사용자 모두에게 보이지 않도록.
( Ex. 100번으로 설정해놓는다면 100번 클릭시 자동으로 사이트의 배너가 공백 혹은 다른 배너로 체인지 )
이런 기능을 자바스크립트로 구현하고 싶은데요.
대략 구상과 비슷한 소스들은 찾아놓았는데
이걸 어떻게 합치고 활용하여야 할 지 감이 안잡힙니다.
개인적으로 ①, ②를 동시에 합쳐 사용하고 싶습니다.
자바스크립트 능력자 분들이 보시고 수정좀 부탁드립니다....
아래는 제가 구글링으로 찾은 소스입니다.
[ ① 번에 해당하는 소스 ]
[ head 부분에 ]
<script language="JavaScript">
var clickCount = readCookie();
if ( clickCount == null ){
clickCount = 0;
}
function trackclick() {
clickCount = parseInt(clickCount)+1;
setCookie( clickCount, 2 );
return true;
}
function setCookie( cookieValue, nDays) {
var today = new Date();
var expire = new Date();
if (nDays==null || nDays==0) nDays=1;
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = "clicktrack="+escape(cookieValue)
+ ";expires="+expire.toGMTString();
}
function readCookie() {
var nameEQ = "clicktrack=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0){
return c.substring(nameEQ.length,c.length);
}
}
return null;
}
</script>
[ html 혹은 body 부분에 ]
<div id="banners" onclick="trackclick();">
<script language="JavaScript">
if ( clickCount > 2 ){
document.write('
<a href="http://mydomain.com/go-here-if-clickcount-surpassed">
<img src="http://mydomain.com/show-this-image.jpg">
</a>
');
}else{
document.write('
배너 소스가 들어가는 공간
');
}
</script>
</div>
[ ②번에 해당하는 소스 ]
※ A와 B는 다른 소스입니다.
A.
var count = 0;
document.getElementById("appendButton").onClick = function(e) {
if( count >= 10 ) {
return false;
}
else {
count ++;
document.getElementById("id_of_thing_you_append_to").innerHTML += "Whatever you're appending";
}
}
B.
Using your variable names:
var thismany = 0;
appendbutton.onclick = function() {
if (thismany++ < 10) {
// append things
}
};
Variable encapsulated:
appendbutton.onclick = function() {
if (this.count == undefined) {
this.count = 0;
}
if (this.count++ < 10) {
// append things
}
};
답변을 작성하시기 전에 로그인 해주세요.