开发者问题收集

页面加载时弹出带有 cookie 的窗口不起作用

2013-05-22
1905

我使用 作为示例,在页面加载时创建弹出窗口。代码在本地工作正常,但当我将其添加到服务器上时,它不起作用。我认为某些脚本可能与它冲突,但我不确定是哪一个。我在 Magento 1.7 上运行。

1) 这是我正在使用的 链接

2) http://jsfiddle.net/5USUu/

步骤 1

添加 CSS & JS

    <link rel="stylesheet" type="text/css" href="<?php echo $this->getJSUrl('pop/colorbox.css'); ?>" media="screen"/>
<link media="screen" rel="stylesheet" target="_blank" href="<?php echo $this->getJSUrl('pop/popup.css'); ?>" />
<script language="javascript" src="<?php echo $this->getJSUrl('pop/colorbox.js'); ?>"></script>

步骤2

</head> 前添加函数

    <script>
$(document).ready(function (){ 
   // load the overlay
    if (document.cookie.indexOf('visited=true') == -1) {
        var fifteenDays = 1000*60*60*24*15;
        var expires = new Date((new Date()).valueOf() + fifteenDays);
        document.cookie = "visited=true;expires=" + expires.toUTCString();
        $.colorbox({width:"580px", inline:true, href:"#subscribe_popup"});
    }

    $(".open_popup").colorbox({width:"580px", inline:true, href:"#subscribe_popup"});

});

步骤3

在页脚处添加 HTML

<p>The subscription popup will activate if no cookie is set. Once the popup is closed a cookie is set which expires every 15 days. You can manually activate the subscription box below.</p>

<a href="#" class="open_popup">Click here to open the popup</a>

<!-- This contains the hidden content for inline calls for the subscribe box -->
<div style='display:none'>
<div id='subscribe_popup' style='padding:10px;'>
<h2 class="box-title">Never miss an update from Papermashup</h2>
<h3 class="box-tagline">Get notified about the latest tutorials and downloads.</h3>
<!-- BEGIN #subs-container -->
<div id="subs-container" class="clearfix">
  <!-- BEGIN .box-side -->

  <!-- BEGIN #subs-container -->
 </div>
 </div>
</div>
<!-- END subscribe popup-->
1个回答

这是一个工作示例: http://jsfiddle.net/5USUu/6/

您必须包含 jQuery,然后包含您正在使用的 [colorBox.js][1] 插件,一旦包含,一切都应该可以正常工作。我在 colorBox 中看到一个弹出窗口,其中显示文本 永远不要错过 Papermashup 的更新

我还更改了:

$("document") => $(document)

查看 JSFiddle。

事实上它在本地工作而不是在你的服务器上,这意味着文件可能不在你的服务器上(或使用错误的 mime 类型传输),请检查你的 Console 以查找要调试的错误。

此外,我看到查看你的源代码( http://miirue.com/m1/ )你包含了两次 jquery 库,我还看到你包含了大量其他库,因此你可能需要使用 jQuerys noConflict 方法。

我发现您的代码存在很多问题,我对它无法正常工作并不感到惊讶。使用您的控制台进行调试,确保 html 全部有效,并且所有资源都使用正确的 mime 类型进行传输并且确实存在。

您的代码似乎没有任何问题(除了 $("document") => $(document) ),如果您的 javascript 在某处中断,它将破坏所有内容,因此请确保您的语法有效且正确。

Anil
2013-05-22