在这里,基本上,我想让客户在30天内只展示一次div。如果没有cookie,则会显示div,并且当单击时,div将执行某些操作,此处不相关,然后它将存储一些cookie(例如客户端IP)。如果饼干存在,虽然div会消失。我在这里写了一些代码,如果可以,请查看它,并帮助我解决问题。
<script type="text/javascript" src="http://l2.io/ip.js?var=myip"></script>
<script>
var el = document.getElementsByClassName('popup');
if(!document.cookie) {
el.style.display = 'block';
setCookie("clientip", myip, 30);
} else {
el.style.display = 'none';
}
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
</script>
我如何设置一个监听器,用于“弹出窗口”?
顺便说一句,第一个脚本是我发现通过JS返回客户端IP的非常酷的东西。答案 0 :(得分:1)
使用jQuery执行;)
使用$.cookie("cookietitle", "cookievalue");
设置您的Cookie并查看它是否已设置并隐藏元素,请执行以下操作:
$(document).ready(function() {
var CookieGet = $.cookie('yourcookie');
if (CookieGet != null) {
// Hide the element here.
$('.yourelement').hide();
}
});
答案 1 :(得分:0)
你真的不需要听众。默认情况下,只需将#include <stdio.h>
#include <string.h>
void quickSortMain(char items[][20], int count);
void quickSort(char items[][20], int left, int right);
int main(void)
{
int i=0, n=0;
char str[2000][20];
memset(str, 0 , sizeof(str[0][0])*20*1000);
FILE *fil;
fil=fopen("text.txt","r");
if (fil!=NULL)
{
while (!feof(fil))
{
fgets(str[i], 20, fil);
i++;
}
fclose(fil);
}
else
{
printf("can not open");
scanf("\n");
}
fil=fopen("text.txt","w");
if (fil!=NULL)
{
fclose(fil);
}
else
{
printf("can not open");
scanf("\n");
}
quickSortMain(str, i);
fil=fopen("text.txt","a");
if (fil!=NULL)
{
while(n<i)
{
fprintf(fil,"%s", str[n]);
n++;
}
fclose(fil);
}
else
{
printf("can not open");
scanf("\n");
}
return 0;
}
void quickSortMain(char items[][20], int count)
{
quickSort(items, 0, count-1);
}
void quickSort(char items[][20], int left, int right)
{
int i=left;
int j=right;
char *x=items[(left+right)/2];
char temp[right+1];
while(i <= j)
{
while((strcmp(items[i],x) < 0) && (i < right)) {
i++;
}
while((strcmp(items[j],x) > 0) && (j > left)) {
j--;
}
if(i <= j) {
strcpy(temp, items[i]);
strcpy(items[i], items[j]);
strcpy(items[j], temp);
i++;
j--;
}
}
if(left < j) {
quickSort(items, left, j);
}
if(i < right) {
quickSort(items, i, right);
}
}
元素显示为popup
,然后在none
的末尾添加问题中的代码。
或者加载DOMContentLoaded
。
另外,是的,正如评论中所述,您必须将<body>
更改为其他内容,因为现在getElementsByClassName
不是一个元素,而是一个元素集合。请参阅documentation
如果您知道只有一个el
元素,则可以执行popup
答案 2 :(得分:0)
好的,经过一些头脑风暴,我意识到我需要将我的div从课堂改为id,因为它会更容易处理,其余部分就是这样:
<script type="text/javascript" src="http://l2.io/ip.js?var=myip"></script>
<script>
var el = document.getElementById('popup');
el.addEventListener('click', showhide);
if(!document.cookie) {
console.log("No cookie");
setCookie("clientip", myip, 30);
function showhide() {
el.style.display = 'none';
console.log("Cookie is stored");
}
} else {
el.style.display = 'none';
console.log("We have your cookies");
}
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
</script>