Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过Javascript获取Magento baseUrl,然后在jquery.hello-lightbox.min中使用它?_Javascript_Magento_Base Url - Fatal编程技术网

如何通过Javascript获取Magento baseUrl,然后在jquery.hello-lightbox.min中使用它?

如何通过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

我试图通过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 ; ?>

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:

  • 获取基本Url
    :Mage::getBaseUrl()
  • 获取皮肤Url
    :Mage::getBaseUrl(Mage\u核心\模型\存储区::Url\u类型\皮肤)
    
  • 不安全的皮肤Url
    :$this->getSkinUrl('images/imagename.jpg')
  • 安全皮肤Url
    :$this->getSkinUrl('images/imagename.gif',数组('u Secure'=>true))
  • 获取媒体Url
    :Mage::getBaseUrl(Mage\u核心\模型\存储::Url\类型\媒体)
  • Get Js Url
    :Mage::getBaseUrl(Mage\u Core\u Model\u Store::Url\u TYPE\u Js)
  • 获取存储Url
    :Mage::getBaseUrl(Mage\u核心\模型\存储::Url\类型\ WEB)
  • 获取当前Url
    :Mage::helper('core/Url')->getCurrentUrl()
  • 获取cms页面或静态块中的Url:

  • 获取基本Url
    :{{store Url=”“}}
  • 获取皮肤Url
    :{{Skin Url='images/imagename.jpg'}}
  • 获取媒体Url`:{{Media Url='/imagename.jpg'}}
  • 获取存储Url
    :{{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');