【问题标题】:Load external Javascript before skin Javascript in Magento在 Magento 中的皮肤 Javascript 之前加载外部 Javascript
【发布时间】:2015-12-21 05:55:37
【问题描述】:

我正在尝试将 Google Maps Javascript API 添加到我的 Magento 模块中。

我遇到的问题是,我包含的 core/text 块包含外部 Javascript 包含标记,仅在所有 addJs 操作之后出现。

这意味着我在pvtl_stores.js 中针对google 对象的脚本不起作用,因为google 对象尚未初始化。

这是我的local.xml 文件:

<layout>
<default>
    <reference name="head">

        <block type="core/text" name="google.maps" before="root">
            <action method="setText">
                <text><![CDATA[<script src="//maps.googleapis.com/maps/api/js"></script>]]></text>
            </action>
        </block>

        <action method="addItem">
            <type>skin_js</type>
            <name>js/pvtl_stores.js</name>
        </action>

    </reference>
 </default>
</layout>

有没有办法在 addJs 操作之前加载 core/text 块?

顺便说一句,如果问题不明显,我是 Magento 编程的新手!

【问题讨论】:

  • 你有没有试过before="-"一开始就渲染?
  • 我试过这个,它什么也没做。我很确定它只会对文本列表中的文本块进行排序,但我可能是错的。

标签: magento magento-1.7 magento-1.9 magento-layout-xml layout-xml


【解决方案1】:

root\js文件夹中上传你的Js。并在顶部的app\design\frontend\base\default\template\page\html\head.phtml 文件中调用此代码。

<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS)."/yourjs.js"; ?>

或者直接调用它

<script src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.js"></script>

更新

你必须先下载js然后 去app\design\frontend\rwd\default\layoutpage.xml(如果你使用默认主题,否则去yourtheme\default\layout)你在这里

    <block type="page/html_head" name="head" as="head">
            <action method="addJs">
               <script>yourjs/yourjs.js</script>
           </action>

            <action method="addJs">
               <script>prototype/prototype.js</script>
           </action>

【讨论】:

  • 感谢您的回答。我可能应该更具体地回答我的问题。我已经在我的模板文件中硬编码了脚本标签,但这感觉太...hackery(?)。不确定这是否是好的做法。我知道 Magento 对编辑的文件等很挑剔。至少,我确实只将脚本标签放在我的主题中。我没有修改基本或默认主题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多