【问题标题】:show div one time per ip/24hs not work in chrome每个 ip/24hs 显示一次 div 在 chrome 中不起作用
【发布时间】:2013-11-17 09:11:21
【问题描述】:

我正在处理此代码.. 并且可以在所有浏览器中工作,除了 chrome。 我想每 24 小时为每个 IP 显示 div(A) 1 次。显示该 div(A) 后,我想在每次该 ip 访问我的页面时显示另一个 div(B)。 这是我的代码

    <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
    <script type="text/javascript" src="https://github.com/carhartl/jquery-cookie/raw/master/jquery.cookie.js"></script>
    <script type="text/javascript">                                         
    $(document).ready(function() {
        if( $.cookie('showOnlyOne') ){
            //it is still within the day
            //hide the div
            $('#showOnlyOnceADay').hide();
            $('#showothertimes').show();
        } else {
            //either cookie already expired, or user never visit the site
            //create the cookie
            $.cookie('showOnlyOne', 'showOnlyOne', { expires: 1 });

            //and display the div
            $('#showOnlyOnceADay').show();
            $('#showothertimes').hide();
        }
    });
    </script>     
</head>
<body>
    <div id="showOnlyOnceADay">
      Div(A)
    </div>
    <div id="showothertimes">
     Div(B)
    </div>
</body>

在 Chrome 中总是同时显示两个 div。有什么问题?谢谢!

【问题讨论】:

  • 你的控制台里有什么?
  • 我想$.cookie('showOnlyOne') 创建的 cookie 没有任何值,因此您可能无法在条件下验证它,所以请尝试 if( $.cookie('showOnlyOne') == 'showOnlyOne' )
  • console - 拒绝从 'github.com/carhartl/jquery-cookie/raw/master/jquery.cookie.js' 执行脚本,因为它的 MIME 类型 ('text/plain') 不可执行,并且启用了严格的 MIME 类型检查。 posi.php:1 Uncaught TypeError: Object function (a,b){return new e.fn.init(a,b,h)} has no method 'cookie' - 这是 cookie 的问题。这是我第一次使用 cookie。我正在阅读,但很多人不了解本地 cookie。
  • 这个问题是关于什么的?复制? stackoverflow.com/questions/19918221/…??

标签: javascript jquery google-chrome cookies


【解决方案1】:

您正在链接到 github 上 javascript 文件的原始版本。未使用正确的 MIME 类型提供此服务,因此您需要下载并自行提供服务。 Github raw 不是 CDN。

你是在本地机器上开发这个吗?如果是这样,Chrome 将不接受基于文件协议的 cookie。您可以通过使用标志启动 Chrome 来启用它们,或者使用某处的 Web 服务器通过 HTTP 对其进行测试。更多信息可以在这里找到:

https://github.com/carhartl/jquery-cookie/issues/231

另外,只是要指出,从技术上讲,您的代码将无法通过 IP 地址运行,因为 cookie 存储在每台机器和每个浏览器中,并且很容易清除和规避。除此之外,您对两个 div 的标记在源代码中仍然可用,并且可以使用开发工具轻松查看。如果安全性(或者更确切地说是您的规则的可执行性)是一个问题,您应该考虑将 cookie 代码移动到服务器端,并且只将适当的 div 写入浏览器。

【讨论】:

  • 然后查看我添加到答案中的第一句话。从您的控制台,听起来您需要下载jquery.cookie.js 文件,将其上传到您的服务器并更改您的脚本标签以反映新位置。
  • Polly.. 谢谢.. 下载并上传到我的服务器.. 工作!这很容易.. 我对 cookie 很陌生
  • 查看您的测试站点,它也不适用于 IE11。您需要更新行 &lt;script type="text/javascript" src="https://github.com/carhartl/jquery-cookie/raw/master/jquery.cookie.js"&gt;&lt;/script&gt; 以反映文件在您的服务器上的位置。
  • 再次感谢.. 是修改原始文件,而不是测试。立即尝试.. 工作!
猜你喜欢
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
  • 2015-08-12
  • 2011-12-05
  • 1970-01-01
  • 2016-11-12
  • 1970-01-01
  • 2020-10-08
相关资源
最近更新 更多