从javascript中确定Magento商店的基本网址的最佳方法是什么?
我正在开发一个可重用的扩展,需要在javascript中知道商店的基本URL,以便进行一些Ajax调用.人们会认为这样的财产
Mage.baseUrl
Run Code Online (Sandbox Code Playgroud)
会有,但我找不到.
另一种方法是将基本URL添加为一些内联javascript,但我无法找到有关如何以编程方式添加内联javascript(仅外部js文件)的任何信息,而无需更改模板.
默认情况下,此信息不会(通过Javascript)(可靠,稳定地)公开.您将需要通过添加到布局的自定义块自己公开它.最简单的方法是
通过主题local.xml文件添加块
为上面的块添加模板到主题
要通过您的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>
Run Code Online (Sandbox Code Playgroud)
然后将以下文件夹和文件添加到您的主题
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
Run Code Online (Sandbox Code Playgroud)
此时,您将拥有一个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>
Run Code Online (Sandbox Code Playgroud)
(未经测试,我的头顶代码,但应该工作)