Magento - 如何在逐页的基础上包含javascript文件

Jon*_*Jon 3 javascript xml layout module magento

在magento我知道如何在页面布局文件中包含js文件.但是,如果我在自定义模块的某些页面上包含特定的javascript文件呢?例如,我正在编写一个可以使用产品视图和列表页面的自定义模块.我希望有一些布局更新,我可以使用我的模块,只包括我的javascript文件在产品视图和列表页面.

Dre*_*ter 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>
Run Code Online (Sandbox Code Playgroud)

然后在您的模块配置文件中,您将需要以下内容:

<frontend>
    <layout>
        <updates>
           <yourmodule>
               <file>yourlayout.xml</file>
            </yourmodule>
         </updates>
     </layout>
 </frontend>
Run Code Online (Sandbox Code Playgroud)

这假设yourscript.js位于js文件夹的根目录中.显然,你不想把它放在这里,所以做Jonathan建议和使用的:

 <action method="addItem"><type>skin_js</type><name>path/file.js</name></action>
Run Code Online (Sandbox Code Playgroud)

并将你的js放在你的主题皮肤文件夹中.

祝好运!


Jon*_*Day 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>
Run Code Online (Sandbox Code Playgroud)

根据JS文件的位置选择任一选项.查看默认的catalog.xml或review.xml以获取示例.

要计算布局句柄(例如catalog_product_view),您可以在他的博客中使用Alan Storm的优秀(和免费)LayoutViewer模块.

HTH,JD