8

我正在尝试通过 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>

然后在 /js/jquery.hello-lightbox.min 我有:

(function($){

function getBaseUrl(baseurl)
{
var domain = baseurl
}

var urrl = 'http://'+domain+'/skin/frontend/default/customtheme/images/lightbox/';

  $.fn.lightBox=function(settings)settings=jQuery.extend({overlayBgColor:'#000',overlayOpacity:0.8,fixedNavigation:false,imageLoading: urrl+'lightbox-ico-loading.gif',imageBtnPrev:urrl+'lightbox-btn-prev.gif', . . . . . . . . . . 

但这不起作用。实际上,似乎我什至无法将 php 变量 $baseUrl 传递给 head.phtml 中的 var baseUrl

你有什么想法?

4

6 回答 6

3

您的主代码中有语法错误。我认为您想要的是定义一个返回基本 URL 的函数,如下所示:

<?php $baseUrl = $this->getBaseUrl() ; ?>

<script type="text/javascript">

function getBaseUrl() { return '<?php echo $baseUrl; ?>'; } 

</script>

然后在 JavaScript 中使用它:(摆脱function getBaseUrl(baseurl) ...那里的东西)

var urrl = 'http://'+getBaseUrl()+'/skin/frontend/default/customtheme/images/lightbox/';
于 2013-02-14T10:51:15.010 回答
2

您可以通过这些简单的步骤在整个商店中的每个 javascript / php 文件中调用基本 url。

打开你的主题 页面/html/head.phtml并在最后一行的HEAD标记中添加以下代码:

<script type="text/javascript">
   var BASE_URL = '<?php echo  Mage::getBaseUrl(); ?>';
</script>

现在,您可以在主题文件中的每个 javascript 代码中使用 BASE_URL 变量来获取 javascript 中的 magento 基本 url。

于 2014-03-24T13:14:41.943 回答
2

尝试在您通过 php echo 设置的 JS var 周围加上引号:

var baseUrl = '<?php echo $baseUrl ; ?>'

于 2013-02-13T23:45:43.543 回答
1

如果您不想使用内联 Javascript,您始终可以将其作为属性添加到 div 或类似的东西。

例如,我会经常添加这样的 html 元素:

<div class="my-class" data-storeurl="<?php echo  Mage::getBaseUrl(); ?>">
....
</div>

然后在我的 Javascript(在本例中为 jQuery)中,我将添加如下内容:

var current_store = $('.store-redirect').attr('data-storeurl');

对于要在正确商店的 url 上运行调用的 AJAX 调用,这很方便。

于 2014-04-08T09:39:36.063 回答
0

编辑:

Javascript 不会像这样在文件之间传递变量。在这种情况下,您不需要使用 PHP,只需执行以下操作:

var urrl = 'http://'+window.location.host+'/skin/frontend/default/customtheme/images/lightbox/';
于 2013-02-13T23:58:19.467 回答
-3

Magento : 获取 Base Url 、 Skin Url 、 Media Url 、 Js Url 、 Store Url 和 Current Url:

  1. 获取基本网址:Mage::getBaseUrl();
  2. 获取皮肤网址:Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);
    1. 不安全的皮肤网址:$this->getSkinUrl('images/imagename.jpg');
    2. 安全皮肤网址:$this->getSkinUrl('images/imagename.gif', array('_secure'=>true));
  3. 获取媒体网址:Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
  4. 获取 Js 网址:Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS);
  5. 获取商店网址:Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
  6. 获取当前网址:Mage::helper('core/url')->getCurrentUrl();

在 cms 页面或静态块中获取 Url:

  1. 获取基本网址:{{store url=""}}
  2. 获取皮肤网址:{{skin url='images/imagename.jpg'}}
  3. 获取媒体网址`:{{media url='/imagename.jpg'}}
  4. 获取商店网址:{{store url='mypage.html'}}
于 2013-06-19T13:31:39.967 回答