【发布时间】:2015-06-25 13:50:33
【问题描述】:
在我的 magento 产品页面上,我需要添加一个基于在产品页面上显示追加销售产品的动态 JavaScript 数组。目标是在用户更改主要产品的颜色时更改追加销售产品的图像。
为了实现我的目标,我需要在每个产品页面上都有一个自定义 JavaScript 数组,它可以为我提供有关交叉销售产品和相关产品图片的信息。
最好的方法是什么?
我试试这个
在我的 config.xml 中添加一个观察者事件
<controller_action_layout_load_before>
<observers>
<crossselling_product_view>
<type>singleton</type>
<class>XXXXXXXX_Crossselling_Model_Observer</class>
<method>productview</method>
</crossselling_product_view>
</observers>
</controller_action_layout_load_before>
添加观察者以添加特定的JS代码
<?php
class XXXXXXXX_Crossselling_Model_Observer {
public function productview(Varien_Event_Observer $observer) {
$product = Mage::registry('current_product');
//only on product page
if (!($product instanceof Mage_Catalog_Model_Product)) {
return;
}
$controller = $observer->getAction();
$layout = $controller->getLayout();
$block = $layout->createBlock('core/text');
$block->setText(
'<script type="text/javascript">
function main_pulsestorm_hellojavascript()
{
alert("Foo");
}
main_pulsestorm_hellojavascript();
</script>'
);
$layout->getBlock('head')->append($block);
}
}
我的错误: 致命错误:在非对象上调用成员函数 append()
我的问题是什么,添加动态js代码的正确方法是什么?
【问题讨论】:
标签: javascript magento