JavaScript:如何获得绝对的Base-URL?

时间:2012-11-03 04:24:06

标签: php javascript jquery html templates

我想在我的HTML / PHP模板中避免使用JavaScript。只要我在外部包含的JS文件中不需要基本/根URL,一切都运行正常。

问题: 有没有人知道将JS逻辑(下面的代码)放入外部JS文件的解决方案?主要问题:如何找出_BASE_URL_?不幸的是,它不是一个可以通过action-attribute获取URL的表单。我不想编译JS / PHP混合文件,它必须是纯JS。

想法(太脏):body标记顶部的隐藏输入,id =" root_url"或主JS文件中的变量:root_url =" http:// localhost / projects / project / version /"。这很容易失败,因为没有文件可以单独工作。

也许有一个很好的htaccess / mod_rewrite解决方案?

注意:我不想获取主机名或"真实" root目录,因为它也必须在子文件夹中工作!

代码

<script type="text/javascript">
// document ready
$(function() {
    // function: load items
    function load_items() {
        $("#items").load("<?php echo _BASE_URL_?>/items.php");
    }

    // load items!
    load_items();
});
</script>

<!-- target div --> 
<div id="items">loading</div>

提前致谢!

2 个答案:

答案 0 :(得分:3)

我能看到你的html结构吗

function getBaseURL () {
   return location.protocol + "//" + location.hostname + (location.port && ":" + location.port) + "/";
}

如果您需要路径,也可以使用此

path = window.location.pathname.split( '/' );
console.log(path);

答案 1 :(得分:0)

我们可以像这样使用

function getBaseURL () {
    return location.protocol + "//" + location.hostname + location.pathname;


}