2016-09-30 147 views
1

使用Joomla创建我的网站。让说我的网站位于在javascript中获取网站根网址

https://domain.com/directory/siteName

我想呈现在我的网站任何页面上的JavaScript这条路。问题是,经过内部的子菜单和网站的不同设置,路径来像these-

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

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

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

  4. 任何一个https://domain.com/directory/siteName/anyMenu

  5. https://domain.com/directory/siteName/anyMenu.html

我已经尝试了一些解决方案,喜欢 -

var re = new RegExp(/^.*\//); 
alert(re.exec(window.location.href)); 

它截断最后一个节点的index.php情况1,也

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

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

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

回答

1

您可以使用Joomla的JURI::base()函数。记住它是php。所以你可以这样做:

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

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