我正在尝试将一个额外的js文件添加到管理块中,我想通过php代码执行此操作。
方案
我的块是管理员编辑表单的标签块,因此它会扩展Mage_Adminhtml_Block_Widget_Form
并实现Mage_Adminhtml_Block_Widget_Tab_Interface
我的方法
在tab块类__prepareLayout()方法中,我添加了这一行:
$this->getLayout()->getBlock('head')->addJs('folder/gallery.js');
这应该没问题,但实际上并没有导入任何js。
答案 0 :(得分:4)
为什么不使用布局XML呢?理想情况下,您可以为模块指定adminhtml布局更新文件,但是您可以将local.xml文件添加到adminhtml/default/default/layout
文件夹,然后执行正常的<reference name="head"><action method="addJs">...</reference>
调用。
答案 1 :(得分:0)
正如@benmarks所建议的那样,这是一种特殊情况,但与描述How to add JS programmatically in Magento?
的情况类似问题是已经渲染了相同的'head'块。
我找到了针对这种特殊情况的解决方案(在后端的编辑选项卡表单块中添加js):
要解决此问题,我在扩展_prepareLayout()
Mage_Adminhtml_Block_Widget_Form
方法中添加了上述行