在javascript中检索Magento商店的基本网址

时间:2012-01-20 03:37:13

标签: magento

从javascript内部确定Magento商店的基本网址的最佳方法是什么?

我正在开发一个可重用的扩展,需要在javascript中知道商店的基本URL才能进行一些Ajax调用。人们会认为像

这样的财产
Mage.baseUrl 

可用,但我找不到。

另一种方法是将基本网址添加为内联javascript,但我无法找到有关如何以编程方式添加内联javascript(仅限外部js文件)的任何信息,而无需更改模板。

1 个答案:

答案 0 :(得分:5)

默认情况下,此信息不会通过Javascript公开(可靠,稳定)。您需要通过添加到布局的自定义块自行公开它。最简单的方法是

  1. 通过主题local.xml档案

  2. 添加块
  3. 为上述块的主题添加模板

  4. 要通过local.xml文件将块添加到布局中,这样的内容就足够了

    <default>
        <reference name="root">
            <block name="my_custom_js_block">
                <action method="setTemplate">
                    <template>my_custom_js_block/extra-js.phtml</template>
                </action>
            </block>
        </reference>
    </default>
    

    然后将以下文件夹和文件添加到主题

    app/design/frontend/default/your_theme/template/my_custom_js_block/
    app/design/frontend/default/your_theme/template/my_custom_js_block/extra-js.phtml
    

    此时您有一个phtml模板文件,该文件将在每个页面上呈现。您可以添加所需的任何javascript变量。我喜欢像

    这样的模式
    #File: app/design/frontend/default/your_theme/template/my_custom_js_block/extra-js.phtml
    <?php
        $h = Mage::helper('core');
        $info = new stdClass();
        $info->base_dir = Mage::getBaseDir();
    ?>
    <script type="text/javascript">
        var my_custom_js_block_info = <?php echo $h->jsonEncode($info); ?>;
    </script>
    

    (未经测试,我的头顶代码,但应该有效)