【问题标题】:adding SSL authority javascript code in Magento one page checkout page在 Magento 一页结帐页面中添加 SSL 授权 javascript 代码
【发布时间】:2013-01-11 22:30:38
【问题描述】:

我一直在尝试在一页 Magento 结帐的边缘添加 SSL 签名机构提供的一串 javscript 代码。在结帐的第一步之后,Magento 中的某些东西似乎正在剥离 javascript 代码,但我找不到有问题的代码。还有其他人注意到这个问题或解决方案吗?

我在 \app\design\frontend\default\myTheme\template\checkout\onepage\progress.phtml 的底部添加了 JS 代码。

代码如下所示:

 <span id="siteseal"><script type="text/javascript" src="https://seal.godaddy.com/getSeal?sealID=xxx"></script></span>

起初我以为它是隐藏的,但标志出现在第一步但在随后的步骤中消失了,但是“siteseal”跨度仍然存在 -empty

【问题讨论】:

  • 这将有助于了解您如何将代码添加到页面,以及您如何将代码保留在 AJAX 页面的多个部分中。
  • 完美,这正是我回答问题所需要知道的。

标签: javascript magento checkout


【解决方案1】:

虽然进度部分的初始输出是基于 PHP 的,但 Magento 在您一步一步移动时通过 AJAX 更新页面的进度部分。这是由以下代码处理的

#File: skin/frontend/base/default/js/opcheckout.js
reloadProgressBlock: function(toStep) {
    var updater = new Ajax.Updater('checkout-progress-wrapper', this.progressUrl, {
        method: 'get',
        onFailure: this.ajaxFailure.bind(this),
        parameters: toStep ? {toStep: toStep} : null
    });
},

如果您查看 Ajax.Updater 的文档,您会看到 Magento 没有传入的附加选项

evalScripts(布尔值;默认为 false):是否应评估响应文本中的元素。

这意味着当 Magento 通过 Ajax 更新页面的该部分时,不会评估脚本,这很可能是您看到您描述的行为的原因。

为了解决您的问题,我会跳过将此代码添加到 progress.phtml 模板,而是使用以下布局更新(在 local.xml 中,或者如果这是您的风格,则在其他地方)

<layouts>
    <checkout_onepage_index>
        <reference name="right">
            <block type="core/text" name="my_extra_stuff" before="checkout.progress.wrapper">
                <action method="setText"><text><![CDATA[
                <span id="siteseal"><script type="text/javascript" src="https://seal.godaddy.com/getSeal?sealID=xxx"></script></span>
                ]]></text></action>
            </block>
        </reference>
    </checkout_onepage_index>
</layouts>  

如果您希望您的代码低于进度内容,只需从布局更新 xml 中删除 before="checkout.progress.wrapper"

【讨论】:

    猜你喜欢
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 2013-04-20
    相关资源
    最近更新 更多