我有一个非常简单的要求,但无法找到一个好的解决方案。
如何将配置数据导入magento中的javascript文件。我需要从模块加载一些配置数据,并从一些javascript代码中提供它。无需将此数据加载到页面上的隐藏字段或使用ajax从控制器中获取它们 - 我该怎么做?
提前感谢您的帮助。
答案 0 :(得分:2)
你可以像这样获取你想要的值:
// using seo as an example. look at the path field on core_config_data
$value = Mage::getStoreConfig("web/seo/use_rewrites");
将它放在一个模板中,它将回显你的代码:
<?php
$seo_value = Mage::getStoreConfig("web/seo/use_rewrites");
?>
<script type='text/javascript'>
magento_config = {}
magento_config['seo_value'] = "<?php print $seo_value; ?>";
// ... add more ...
</script>
将该模板添加到您的布局中,您现在将拥有一个名为magento_config
的全局JS对象,您可以使用它来获取值。根据您放置模板的位置,您可能必须等待页面加载才能变量可用。
确保不要无差别地回应这些值,因为将商店配置数据回显到前端可能会产生安全隐患。
希望有所帮助!
谢谢, 乔
答案 1 :(得分:0)
在加载JS之前添加此代码...
<script type="text/javascript">var var_name = <?php echo $var_name; ?></script>
然后你可以在JS中加载
<script type="text/javascript" src="/js/file.js"></script>
在你的file.js中(假设在变量定义之后加载文件)你可以做类似......
//execute as soon as DOM is loaded
window.onDomReady(onReady);
//do on ready
function onReady()
{
alert(var_name);
}
或者如果您使用的是jQuery
$(document).ready(function(){ alert(var_name); }