如何通过Javascript获取Magento baseUrl,然后在jquery.hello-lightbox.min中使用它?
我试图通过head.phtml文件中的javascript获取Magento BaseUrl,然后在jquery.hello-lightbox.min文件中使用它,我需要BaseUrl来获取一些图像 以下是我在head.phtml文件中的内容:如何通过Javascript获取Magento baseUrl,然后在jquery.hello-lightbox.min中使用它?,javascript,magento,base-url,Javascript,Magento,Base Url,我试图通过head.phtml文件中的javascript获取Magento BaseUrl,然后在jquery.hello-lightbox.min文件中使用它,我需要BaseUrl来获取一些图像 以下是我在head.phtml文件中的内容: <?php $baseUrl = $this->getBaseUrl() ; ?> <script type="text/javascript"> var baseUrl = <?php echo $baseUrl
<?php $baseUrl = $this->getBaseUrl() ; ?>
<script type="text/javascript">
var baseUrl = <?php echo $baseUrl ; ?>
function getBaseUrl(baseUrl)
</script>
但这不起作用。事实上,我甚至无法将php变量$baseUrl传递给head.phtml中的var baseUrl
你有什么想法吗?试着在你通过php echo设置的JS变量周围加上引号:
var baseUrl=''
编辑:
Javascript不会像那样在文件之间传递变量。在这种情况下,您不需要使用PHP,只需执行以下操作:
var urrl = 'http://'+window.location.host+'/skin/frontend/default/customtheme/images/lightbox/';
主代码中存在语法错误。我认为您需要定义一个返回基本URL的函数,如下所示:
<?php $baseUrl = $this->getBaseUrl() ; ?>
<script type="text/javascript">
function getBaseUrl() { return '<?php echo $baseUrl; ?>'; }
</script>
Magento:获取基本Url、皮肤Url、媒体Url、Js Url、商店Url和当前Url:
:Mage::getBaseUrl()代码>
:Mage::getBaseUrl(Mage\u核心\模型\存储区::Url\u类型\皮肤)代码>
不安全的皮肤Url:$this->getSkinUrl('images/imagename.jpg')代码>
安全皮肤Url:$this->getSkinUrl('images/imagename.gif',数组('u Secure'=>true))代码>
:Mage::getBaseUrl(Mage\u核心\模型\存储::Url\类型\媒体)代码>
:Mage::getBaseUrl(Mage\u Core\u Model\u Store::Url\u TYPE\u Js)代码>
:Mage::getBaseUrl(Mage\u核心\模型\存储::Url\类型\ WEB)代码>
:Mage::helper('core/Url')->getCurrentUrl()代码>
:{{store Url=”“}}
:{{Skin Url='images/imagename.jpg'}}
:{{storeURL='mypage.html'}}
您可以通过这些简单的步骤在整个存储中的每个javascript/php文件中调用基本url 打开主题的页面/html/head.phtml,并在最后一行的head标记中添加以下代码:
<script type="text/javascript">
var BASE_URL = '<?php echo Mage::getBaseUrl(); ?>';
</script>
var BASE_URL='';
现在,您可以在主题文件中的每个javascript代码中使用BASE_URL变量来获取javascript中的magento BASE URL。如果您不想使用内联javascript,您可以始终将其作为属性添加到div或类似行 例如,我经常会添加如下html元素:
<div class="my-class" data-storeurl="<?php echo Mage::getBaseUrl(); ?>">
....
</div>
对于希望在正确的商店url上运行调用的AJAX调用,它非常方便。不,它不起作用。baseUrl由$baseUrl=$this->getBaseUrl()正确生成;问题是我无法将其传递给js变量谢谢,但这与添加:var domain=document.domain相同;然后var urrl='http://'+domain+'/skin/frontend/default/helloreresponse/images/lightbox/';它不带baseUrl,它只带主机根URL,在这种情况下我需要baseUrl…你能看到/js/jquery.hello-lightbox.min中的函数是否通过放置警报来运行吗?不,它没有运行,这就是为什么我怀疑是否可以通过在js库中放置函数来实现这一点。可能我的方式不对…尝试将函数移到匿名函数之外:(函数($){您好,谢谢,但是您的建议会破坏ligthbox功能。如果我离开函数:函数getBaseUrl(baseurl){}在jquery.hello-lightbox.min中,ligthbox功能可以工作,但无法获取基本URL,如果我用firebug检查,css行中的URL显示为:URL(“…我想我们很接近了。还有其他线索吗?
<script type="text/javascript">
var BASE_URL = '<?php echo Mage::getBaseUrl(); ?>';
</script>
<div class="my-class" data-storeurl="<?php echo Mage::getBaseUrl(); ?>">
....
</div>
var current_store = $('.store-redirect').attr('data-storeurl');