javascript - 在javascript中获取站点根url

标签 javascript joomla

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

https://domain.com/directory/siteName

我想在我网站上呈现的任何页面上的 javascript 中获取此路径。问题是,随着内部子菜单和网站的不同设置,路径变成了这样的任何一个-

  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));

在情况 1 中它也将最后一个节点 chop 为 index.php

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

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

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

最佳答案

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

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

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

关于javascript - 在javascript中获取站点根url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39794805/

相关文章:

javascript - 在 foreach 中加载所有项目后,Knockoutjs 组件回调

javascript Canvas 为空

joomla - 如何在tinymce编辑器中隐藏toogle编辑器

ajax - Jquery 自动完成不显示结果

javascript - 为什么我的 Angular.js fiddle 不起作用?

javascript - iOS WebView Javascript

javascript - 这是一个javascript闭包吗?

php - 如何在 Joomla 组件中使用 Jquery AJAX?

html - 我怎样才能改变 Joomla 文章的位置?

php - 从 CSV 文件在 Joomla 2.5 中添加用户并通知他们注册电子邮件