儘管進度部分的初始輸出是基於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"
。
這將有助於瞭解如何添加代碼頁面,以及除了代碼如何保存在AJAX頁面的多個部分之外。 –
完美,這正是我需要知道回答這個問題。 –