在javascript

时间:2016-09-30 15:14:41

标签: javascript joomla

使用Joomla创建我的网站。假设我的网站位于

  

https://domain.com/directory/siteName

我希望在我网站上呈现的任何页面上使用javascript获取此路径。问题是,在内部子菜单和站点的不同设置之后,路径变成了这样的任何一个 -

  
      
  1. https://domain.com/directory/siteName/anyMenu/index.php

  2.   
  3. https://domain.com/directory/siteName/index.php

  4.   
  5. https://domain.com/directory/siteName/index.php?option=com_content&id=9

  6.   
  7. https://domain.com/directory/siteName/anyMenu

  8.   
  9. https://domain.com/directory/siteName/anyMenu.html

  10.   

我尝试了一些像 -

这样的解决方案
var re = new RegExp(/^.*\//);
alert(re.exec(window.location.href));

它在案例1中将最后一个节点截断为index.php,也是

var dummy = new Image;
dummy.src = '$';                 
alert(dummy.src.slice(0,-1));

做同样的事情。那么有没有办法只使用javascript获取网站所在的确切地址?此外,对于任何站点,结果必须是通用的,就好像它应用于任何扩展,然后该扩展可以安装在任何级别的目录结构的任何站点中。

我需要这个,因为我正在使用一个内部注册另一个js文件的js文件。因此,必须在第一个js中给出注册js的路径

1 个答案:

答案 0 :(得分:3)

你可以使用Joomla的this issue功能。记住它是PHP。所以你可以这样做:

$document = JFactory::getDocument();
$document->addScriptDeclaration('var base = \''.JURI::base().'\'');

您现在可以在JS脚本中使用base变量。请记住在上面的声明之后将其添加到文档中。