当多个Magento扩展包含Jquery库时该怎么办

rab*_*eth 6 javascript jquery magento

我阅读了如何正确地将jquery包含到magento中的指南

  1. 包括图书馆
  2. 不包括冲突脚本
  3. 转到$ jquery调用并将其更改为Jquery

一次扩展就很容易了.但是,就我而言,我安装了3个不同的扩展,并且所有扩展都希望包含Jquery.当然,我不想复制这个库并调用它3次.首先,我想我可以在<head>标签的第一行手动包含jquery库,并删除3个扩展中的所有jquery包含.但它没有成功,通常只有其中一个有效.如果我允许所有3个扩展包含jquery,那么它们都可以工作.如何只包含一次libray,我怎样才能使商店中的所有jquery扩展工作?

有人建议我应该在顶部包含所有jquery依赖脚本<head>,是吗?但是,问题是我不知道如何使用动作addJs或安排Magento中的脚本addItem.没有像之前或之后的参数<block>

gia*_*our 3

如果您想强制addJs方法中包含的 Javascript 加载顺序,最简单的方法是使用标签提供名称<params>,例如:

<action method="addJs"> <!-- Loads second -->
    <script>vendor/jquery-1.6.2.min.js</script>
    <params><![CDATA[name="jquery2"]]></params>
</action>

<action method="addJs"> <!-- Loads first -->
    <script>vendor/jquery-1.8.2.min.js</script>
    <params><![CDATA[name="jquery1"]]></params>
</action>
Run Code Online (Sandbox Code Playgroud)

Magento 将根据提供的名称按字母升序加载 Javascript 文件。

不过,就您而言,找出扩展和各种 jQuery 文件不能很好地配合的原因可能会更有效。

  • 每个扩展是否都依赖于特定版本的 jQuery?
  • 他们是否使用不同的无冲突方法(即,一种使用直接调用jQuery.noConflict(),另一种使用类似的方法var $j = jQuery.noConflict())?
  • 它们都使用相同的全局变量名吗?