虽然进度部分的初始输出是基于 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>
如果您希望您的代码低于进度内容,只需before="checkout.progress.wrapper"
从布局更新 xml 中删除。