【问题标题】:<script>document.write('<base href="' + document.location + '" />');</script><script>document.write('<base href="' + document.location + '" />');</script>
【发布时间】:2014-08-31 16:31:10
【问题描述】:

head 中以下脚本的目的是什么?

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

我有点理解 base 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;
    };
});

【问题讨论】:

    标签: javascript html angularjs href


    【解决方案1】:

    &lt;base&gt; 元素指定用于文档中包含的所有相对 URL 的基本 URL。

    来自Mozilla Developer Network 定义:

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

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

    【讨论】:

    • 嘿,你能帮我解释一下为什么需要它吗?当前的 URL 不是默认的吗?为了测试路由选项卡,我下载了这个plunker。我以 zip 格式下载并按原样运行,但它不起作用,但它在小提琴上运行。与位置网址有关吗?
    • 文档中的所有相对 URL 都使用基本 URL。你能链接你的小提琴吗?
    猜你喜欢
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 2011-08-23
    • 2018-01-27
    • 2011-05-13
    • 2016-08-06
    相关资源
    最近更新 更多