1

我有一些 JavaScript,只需要包含在产品页面中。我如何有条件地包含这样的 JavaScript,我应该将 JavaScript 代码放在哪个文件中,以便有条件地包含在 html 文档的部分中?

谢谢。

4

1 回答 1

3

有十几种不同的方法可以做到(可能更多)。根据您的描述,您可能应该通过 XML 添加它。特定页面的许多 XML 布局文件中都有特定的标签。

布局文件位于 app/design/frontend/foodesign/default/layout 中。在此目录中,创建一个名为 local.xml 的文件(如果不存在)。

现在你需要找出你希望你的 css/js 显示在哪里的正确标签。
下面的一些例子:

<catalog_category_default translate="label"> <!--Non-Anchor Category View-->

<catalog_category_layered translate="label"> <!--Anchor Category View-->

<catalog_product_view translate="label"> <!--Default Product View-->

<!--Product View for Specific Types-->
<PRODUCT_TYPE_simple translate="label" module="catalog">
<PRODUCT_TYPE_configurable translate="label" module="catalog">
<PRODUCT_TYPE_grouped translate="label" module="catalog">
<PRODUCT_TYPE_virtual translate="label" module="catalog">


要使用预定义的方法通过 XML 添加到您的 HEAD,这取决于您将 js/css 文件放在目录中的位置。


如果它在您的 skin/frontend/foodesign/js 文件夹中:

<reference name="head">
    <action method="addItem">
        <type>skin_js</type><name>js/yourJsName.js</name><params/><if/>
    </action>
</reference>

如果它在 root/js 文件夹中:

<reference name="head">
    <action method="addJs"><script>yourJsName.js</script></action>
</reference>

...最后是 css(放在你的 skin/frontend/foodesign/css 文件夹中):

<reference name="head">
    <action method="addCss"><stylesheet>css/yourCssName.css</stylesheet></action>
</reference>


所以你的 local.xml 可能看起来像这样:

<?xml version="1.0"?>

<layout version="0.1.0">

    <catalog_product_view translate="label">
        <reference name="head">
            <action method="addItem">
                <type>skin_js</type><name>js/yourJsName.js</name><params/><if/>
            </action>
            <action method="addCss"><stylesheet>css/yourCssName.css</stylesheet></action>
        </reference>
    </catalog_product_view>

</layout>

我相信这个方法真的只适用于 head 部分,如果你有兴趣将 js 添加到其他块中,我会向你推荐我回答的另一个问题:

如何通过magento中的布局xml文件在正文部分(不是标题)中添加Javascript文件

让我知道这是否适合你。

于 2013-06-18T23:45:53.900 回答