现在的位置: 首页 > 综合 > 正文

Magento – 集成js文件到页面文件中

2018年05月27日 ⁄ 综合 ⁄ 共 2379字 ⁄ 字号 评论关闭

转载于 罗马集市

Magento的JS文件存放有两个地方:

1). 系统级别的js目录位置 : $MAGENTO_INSTALLED_FOLDER/js,该目录下也存放相应js功能的css文件。

2). 特定于某套页面风格的目录下: $MAGENTO_INSTALLED_FOLDER/skin/{frontend | admin | install}/<package name>/<theme name>/js

那么Magento应用又是如何引用这些js文件的呢?

1. 引用系统级别的js文件

方式I. 最一般的方法是配置全局block. 在page.xml中有

Xml代码
  1. <
    default
    >
      
  2.         <
    block
     
    type
    =
    "page/html"
     
    name
    =
    "root"
     
    output
    =
    "toHtml"
     
    template
    =
    "page/3columns.phtml"
    >
      
  3.   
  4.             <
    block
     
    type
    =
    "page/html_head"
     
    name
    =
    "head"
     
    as
    =
    "head"
    >
      
  5.                 <
    action
     
    method
    =
    "addJs"
    >
    <
    script
    >
    prototype/prototype.js
    </
    script
    >
    </
    action
    >
      
  6.                  ....  
  7.                <
    action
     
    method
    =
    "addItem"
    >
    <
    type
    >
    js
    </
    type
    >
    <
    name
    >
    lib/ds-sleight.js
    </
    name
    >
    <
    params
    />
    <
    if
    >
    lt IE 7
    </
    if
    >
    </
    action
    >
      
  8.             </
    block
    >
      
  9.          </
    block
    >
      
  10. </
    default
    >
      

任何使用该template的页将自动包含$MAGENTO_INSTALLED_FOLDER/js/prototype目录下的prototype.js文件。

特别说明:

Xml代码
  1. <
    action
     
    method
    =
    "addItem"
    >
    <
    type
    >
    js
    </
    type
    >
    <
    name
    >
    lib/ds-sleight.js
    </
    name
    >
    <
    params
    />
    <
    if
    >
    lt IE 7
    </
    if
    >
    </
    action
    >
      

根据浏览器版本有条件地载入js文件

方式II. 在页面文件里包含系统级js文件

Html代码
  1. <
    script
     
    type
    =
    "text/javascript"
     
    src
    =
    "<?php echo $this->getJsUrl('varien/accordion.js') ?>"
    >
    </
    script
    >
      

有一个Helper类做同样事情,下面是例子:

Html代码
  1. <?
    php
     echo $this-
    >
    helper('core/js')-
    >
    includeScript('varien/accordion.js') 
    ?>
      

该方法主要用来在某些页面包含额外的js文件。而这些文件在其他页面中却不常使用。

方式 III. 在Block类中使用下面的代码

Java代码
  1. protected
     function _prepareLayout(){  
  2.   $this
    ->getLayout()->getBlock(
    'head'
    )->addJs(
    'mage/adminhtml/sales.js'
    );  
  3.   .....  
  4.   return
     parent::_prepareLayout();  
  5. }  

将在page.xml中的名称为"head"的Block中说明的包含js的基础上,继续包含$MAGENTO_INSTALLED_FOLDER/js/mage/adminhtml/sales.js文件。

2.包含特定Theme包下的js文件:


这通常在页面文件中作如下调用

Html代码
  1. <
    script
     
    type
    =
    "text/javascript"
     
    src
    =
    "<?php echo $this->getSkinUrl('js/opcheckout.js') ?>"
    >
    </
    script
    >
     

抱歉!评论已关闭.