运行javascript一次

时间:2012-04-05 22:32:46

标签: javascript cookies

我想一次运行javascript。 我尝试使用Dynamic Drive中的脚本,但似乎无法使用脚本。

我希望它在用户第一次访问该页面时运行,但之后不会再次弹出。

有任何帮助吗?

我的脚本是

    <script src="http://www.google.com/jsapi"></script><script>google.load("jquery", "1");</script> 
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
<script type="text/javascript">
    Username="___", <!-- Facebook Username Without http://facebook.com/ -->
    Title="Join Our Facebook!", <!-- Title -->
    Skin="01", <!-- 01 Through 04 -->
    Time="15", <!-- Countdown In Seconds -->
    Wait="0", <!-- Wait For Popup -->
    Lang="en"
</script>
<script type="text/javascript" src="likeboxfbfanpro.js"></script>
<script type="text/javascript">$(document).ready(function(){$().popupbox({ closeable: false });});</script>

1 个答案:

答案 0 :(得分:2)

你可以做两件事:

  • 首次显示消息后设置cookie并测试每个页面加载时是否存在cookie。如果cookie不存在则显示消息,如果cookie不存在则跳过它。

  • 设置服务器端会话值(仅限会话)或数据库记录(如果可以以某种方式识别返回的访问者(即IP),则跨越会话)以在将第一页提供给客户端后控制HTML 。如果没有会话/数据库值,则仅发送消息html

如果您想设置Cookie。这是一个执行cookie处理的小脚本:

function createCookie(name,value,days) {
if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
}
else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
var nameEQ = name + "=";
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;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

现在在您的代码中,您可以按如下方式使用它:

if (!readCookie('alreadyShown')) {
  .. add you show message code here...
  createCookie('alreadyShown', true)
}