在magento中,我知道如何在页面布局文件中包含js文件。但是,如果我在自定义模块的某些页面上包含特定的javascript文件呢? 例如,我正在编写一个可以使用产品视图和列表页面的自定义模块。我希望有一些布局更新,我可以使用我的模块,只包括我的javascript文件在产品视图和列表页面。
答案 0 :(得分:18)
您需要在模块配置文件中添加布局更新部分。根据你所说的你在布局文件中需要这样的东西:
<?xml version="1.0"?>
<layout version="0.1.0">
<catalog_product_view>
<reference name="head">
<action method="addJs"><script>yourscript.js</script></action>
</reference>
</catalog_product_view>
<catalog_category_view>
<reference name="head">
<action method="addJs"><script>yourscript.js</script></action>
</reference>
</catalog_category_view>
</layout>
然后在您的模块配置文件中,您将需要以下内容:
<frontend>
<layout>
<updates>
<yourmodule>
<file>yourlayout.xml</file>
</yourmodule>
</updates>
</layout>
</frontend>
这假设yourscript.js位于js文件夹的根目录中。显然,你不想把它放在这里,所以做Jonathan所建议和使用的:
<action method="addItem"><type>skin_js</type><name>path/file.js</name></action>
并将你的js放在你的主题皮肤文件夹中。
祝你好运!答案 1 :(得分:5)
您需要做的是找到要包含JS的页面的布局句柄,并将它们添加到自定义模块的布局XML中。例如,要在产品视图中包含JS,您可以将以下节点添加到布局中:
<catalog_product_view>
<reference name="head">
<action method="addJs"><script>path/file.js</script></action> **OR**
<action method="addItem"><type>skin_js</type><name>path/file.js</name></action>
</reference>
根据JS文件的位置选择任一选项。查看默认的catalog.xml或review.xml以获取示例。
要计算布局句柄(例如catalog_product_view),您可以在他的博客中使用Alan Storm的优秀(和免费)LayoutViewer模块。
HTH, JD