时间:2014-07-10 10:27:21

标签: javascript html angularjs href

以下脚本的目的是什么?

<head>
<script>document.write('<base href="' + document.location + '" />');</script>
...
</head>

我有点理解base href用于设置默认路径的初始部分。那么这个网址在哪里设置? 后来我用

<body ng-app="plunker" ng-controller="NavCtrl">
    <p>Click one of the following choices.</p>
    <ul>
        <li ng-class="{active: isActive('/tab1')}"><a href="#/tab1">tab 1</a></li>
        <li ng-class="{active: isActive('/tab2')}"><a href="#/tab2">tab 2</a></li>
    </ul>
    <pre>{{ path }}</pre>
</body>

使用以下控制器:

var app = angular.module('plunker', []);

app.controller('NavCtrl', function($scope, $location) {
    $scope.isActive = function(route) {
        $scope.path = $location.path();
        return $location.path() === route;
    };
});

1 个答案:

答案 0 :(得分:5)

<base>元素指定用于文档中包含的所有相对URL的基本URL。

来自Mozilla Developer Network定义:

  

Document.location只读属性返回一个Location对象,   其中包含有关文档URL的信息并提供   用于更改该URL并加载其他URL的方法。

在您的情况下,它会将base href设置为当前网址。此外,document.location相当于document.location.href