在joomla php中我可以$this->baseurl
用来获取基本路径,但我想在jquery中获取基本路径.
基本路径可以是以下任何示例:
http://www.example.com/ http://localhost/example http://www.example.com/sub/example
该example
也可能改变.
这是一个非常老的问题,但这是我个人使用的方法...
正如许多人已经指出的那样,这适用于大多数情况。
var url = window.location.origin;
但是,此简单方法可用于剥离任何端口号。
var url = "http://" + location.host.split(":")[0];
另外,基本URL可以在全局范围内重新定义。
document.head.innerHTML = document.head.innerHTML + "<base href='" + url + "' />";
这是javascript无法实现的,因为这是服务器端属性.客户端上的Javascript无法知道joomla的安装位置.最好的选择是以某种方式包含$this->baseurl
页面javascript 的值,然后使用此值(phpBaseUrl
).
然后,您可以像这样构建网址:
var loc = window.location; var baseUrl = loc.protocol + "//" + loc.hostname + (loc.port? ":"+loc.port : "") + "/" + phpBaseUrl;
这将获得基本网址
var baseurl = window.location.origin+window.location.pathname;
在jQuery中获取基本URL的最简单方法
window.location.origin
我在几个Joomla项目中遇到了这种需求.我发现解决的最简单方法是在模板中添加一个隐藏的输入字段:
<input type="hidden" id="baseurl" name="baseurl" value="<?php echo $this->baseurl; ?>" />
当我需要JavaScript中的值时:
var baseurl = document.getElementById('baseurl').value;
不像使用纯JavaScript那样花哨,但很简单并完成工作.
这个会帮你...
var getUrl = window.location; var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
var getUrl = window.location; var baseurl = getUrl.origin; //or var baseurl = getUrl.origin + '/' +getUrl.pathname.split('/')[1];
但是你不能说CodeIgniter(或php joomla)的baseurl()将返回相同的值,因为它可以更改这些框架的.htaccess文件中的baseurl.
例如 :
如果你在localhost中有这样的.htaccess文件:
RewriteEngine on RewriteBase /CodeIgniter/ RewriteCond $1 !^(index.php|resources|robots.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
$ this-> baseurl()将返回http:// localhost/CodeIgniter /
我觉得它对你没问题
var base_url = window.location.origin; var host = window.location.host; var pathArray = window.location.pathname.split( '/' );
前段时间有同样的问题,我的问题是,我只需要基本URL。这里有很多详细的选项,但是要解决这个问题,只需使用window.location
对象。实际上是在浏览器控制台中键入此内容,然后按Enter键以在那里选择您的选项。对我来说,这很简单:
window.location.origin