我有一些 JavaScript,只需要包含在产品页面中。我如何有条件地包含这样的 JavaScript,我应该将 JavaScript 代码放在哪个文件中,以便有条件地包含在 html 文档的部分中?
谢谢。
我有一些 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 添加到您的 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文件
让我知道这是否适合你。