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

5
以下脚本在head中的目的是什么?
<head>
<script>document.write('<base href="' + document.location + '" />');</script>
...
</head>

我有点理解基本href用于设置默认路径的初始部分。那么这会将URL设置到哪里呢? 稍后,我会使用

<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个回答

6

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

根据Mozilla开发者网络的定义:

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

在您的情况下,它将base href设置为当前URL。此外,document.location等同于document.location.href


1
嘿,你能帮我解释一下为什么需要这个吗?难道当前的URL不是默认的吗?为了测试路由选项卡,我下载了这个plunker。我将它作为zip文件下载并运行,但它没有工作,但在fiddle上可以运行。这与位置URL有关吗? - archit
基本URL用于文档中所有相对URL。你可以链接你的fiddle吗? - Luke Peterson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接