Javascript Magento新闻稿弹出窗口(模式窗口)在每一页上启动。它应该只在主页上弹出

Javascript Magento新闻稿弹出窗口(模式窗口)在每一页上启动。它应该只在主页上弹出,javascript,php,jquery,magento,popup,Javascript,Php,Jquery,Magento,Popup,我一直有一个持续的问题,我的时事通讯模式窗口弹出窗口在网站上的每一个单独的页面上启动。这是非常侵入性的,我只希望它弹出当用户访问主页。我在用EE Magento ver跑步。1.13.1.0 我尝试过的代码如下,它位于footer.phtml中: <?php if(Mage::getSingleton('cms/page')->getPageId() == '2' && Mage::app()->getFrontController()->getReque

我一直有一个持续的问题,我的时事通讯模式窗口弹出窗口在网站上的每一个单独的页面上启动。这是非常侵入性的,我只希望它弹出当用户访问主页。我在用EE Magento ver跑步。1.13.1.0

我尝试过的代码如下,它位于footer.phtml中:

<?php if(Mage::getSingleton('cms/page')->getPageId() == '2' && Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms') : ?>    

<div id="newsletter_sign_up" style="display:none;" >

<div style="padding:20px;" >
<form action="<?php echo($this->getUrl('newsletter/subscriber/new')) ?>" method="post" >
  <div class="fieldset">

    <h1 style="color: #28ced7; text-align: left; font-family: Arial, Helvetica, sans-serif; font-size: 28px;">verbiage goes here</h1>

    <h2 class="legend" style="text-align:left; font-family: Arial, Helvetica, sans-serif; font-size: 13px;">verbiage goes here</h2>
    <!--end-->
    <ul class="form-list">
      <li class="fields">
        <div class="customer-name">
          <div class="field name-firstname">
            <label class="required" for="firstname" style="text-align:left;"><em>*</em>First Name</label>
            <div class="input-box">
              <input type="text" class="input-text required-entry" maxlength="255" title="First Name" value="" name="firstname" id="firstname" autocomplete="off"/>
            </div>
          </div>
          <div class="field name-lastname">
            <label class="required" for="lastname" style="text-align:left;"><em>*</em>Last Name</label>
            <div class="input-box">
              <input type="text" class="input-text required-entry" maxlength="255" title="Last Name" value="" name="lastname" id="lastname" autocomplete="off"/>
            </div>
          </div>
        </div>
      </li>
      <li>
        <label class="required" for="email_address"  style="text-align:left;"><em>*</em>Email Address</label>
        <div class="input-box">

          <input type="text" class="input-text validate-email required-entry" title="Email Address" value="" id="email_address" name="email" autocomplete="off"/>

      <input class="pop_newsletter_source" name="source" type="hidden" value="3" />

        </div>
      </li>
    </ul>
  </div>
  <div class="buttons-set form-buttons">
    <button onclick="pop_newsletter.submit(); return false;" title="Submit" class="button" type="submit" autocomplete="off" style="position: relative; right: 140px;"><span><span>Submit</span></span></button>
  </div>
  <p class="required">* Required Fields</p>

  <h2 style="text-align: left; font-size: 10px;">Email Privacy Statement:</h2>
  <p style="font-family: Arial, Helvetica, sans-serif; font-size: 10px; text-align: left;">more verbiage</p>
  <!--//end-->
</form>
</div>

</div>

<?php endif; ?>


您的代码是放在页眉还是页脚,并且在每个页面上都被缓存?

对不起,我应该指定它;它现在放在页脚。我想这可能是因为页脚缓存。基本上,我们在大多数FPC模块中缓存您的页脚,因为每个页面上的页脚内容几乎相似。在您的例子中,这个html是动态的。因此,如果您有FPC,您需要在缓存的“动态块”中指定您的模型子块,以便它在每个页面上动态呈现,这也将每次检查您的if条件。我不确定FPC是什么意思。FPC代表完整页面缓存。在这种情况下,您可以指定要在每个页面上缓存的块,这样,浏览器就不会从服务器请求它们,而是从缓存中呈现它们。你可以在这里查看更多信息:我不太确定这是否是原因,这可能是你的模型出现在每一页上的原因之一。好吧,现在更清楚了,更有意义了。你知道如何解决这个问题吗?
<?php echo "<pre>"; print_r(Mage::getSingleton('cms/page')->getPageId()); echo "</pre>"; ?>
<?php if(Mage::getSingleton('cms/page')->getIdentifier() == 'home' && Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms') : ?>