Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Magento页面上有条件地包含JavaScript_Magento_Magento 1.7 - Fatal编程技术网

在Magento页面上有条件地包含JavaScript

在Magento页面上有条件地包含JavaScript,magento,magento-1.7,Magento,Magento 1.7,我有一些JavaScript,我只需要在产品页面中包含它们。 如何有条件地包含此类JavaScript,以及应将JavaScript代码放入哪个文件中,以便有条件地包含在html文档的部分中 谢谢。有十几种不同的方法可以做到这一点(可能更多)。从您所描述的内容来看,您可能应该通过XML添加它。许多XML布局文件中都有特定页面的特定标记 布局文件位于app/design/frontend/foodesign/default/layout中。在此目录中,如果文件不存在,则创建一个名为local.xm

我有一些JavaScript,我只需要在产品页面中包含它们。 如何有条件地包含此类JavaScript,以及应将JavaScript代码放入哪个文件中,以便有条件地包含在html文档的部分中


谢谢。

有十几种不同的方法可以做到这一点(可能更多)。从您所描述的内容来看,您可能应该通过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添加到头部,这取决于您将js/css文件放在目录中的位置


如果它位于皮肤/frontend/foodesign/js文件夹中:

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


让我知道这是否适合您。

您可以在服务器端完成,我认为其他开发人员通常都会这样做。具体来说,您希望在客户端进行什么条件加载?这是什么条件(例如浏览器功能)?不,我希望在服务器端有条件加载,因此它包含在产品页面上,但在主页上加载不同的js和css。但我不知道哪个文件包含in-app/design/frontend/foodesign/default/template的内容。Jason,回答得好!您刚才让我想知道,在哪里可以找到“addItem”方法的值列表。除了javascript和css之外,还有哪些其他类型?对应的值是什么?某个地方有完整的列表吗?操作方法引用用于该块的关联类。因此,addItem()方法位于app/code/core/mage/page/html/head.php中。可用的选项有“js”、“js_css”、“skin_js”、“skin_css”和“rss”。addJs()和addCss()方法分别是addItem('js','name')和addItem('skin_css','name')的快捷方法。希望这能帮助您了解布局系统的工作原理。
<reference name="head">
    <action method="addCss"><stylesheet>css/yourCssName.css</stylesheet></action>
</reference>
<?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>