首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Javascript中设置页面的基本href?

如何在Javascript中设置页面的基本href?
EN

Stack Overflow用户
提问于 2010-08-17 00:00:40
回答 3查看 46.9K关注 0票数 33

我想在Javascript中根据当前主机名设置页面的基本href属性。我已经生成了可以在不同主机名上查看的HTML页面,这意味着生成一个基本href标记将在一个主机名中工作,但在另一个主机名中将是不正确的。

EN

回答 3

Stack Overflow用户

发布于 2017-06-11 09:21:37

我想你最好这样做。

代码语言:javascript
复制
    <script type="text/javascript">
        document.head.innerHTML = document.head.innerHTML + "<base href='" + document.location.href + "' />";
    </script>

因为location.hostname没有返回应用程序上下文根!您还可以在控制台console.log上记录document.location,以查看document.location上的所有可用元数据。

票数 13
EN

Stack Overflow用户

发布于 2016-08-26 12:29:04

document.write("");

代码语言:javascript
复制
<script>
document.write("<base href='"+ window.location.protocol +'//' + window.location.host + "' >");
</script>

票数 3
EN

Stack Overflow用户

发布于 2019-09-12 23:51:50

我不同意上面的答案。“不正确的”解决方案是错误的唯一原因是它没有考虑到协议,所以它将失败。

我必须考虑的协议/主机/端口的工作解决方案如下

代码语言:javascript
复制
    var base = document.createElement('base');
    base.href = window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');
    document.getElementsByTagName('head')[0].appendChild(base);

目前,这在包括IE11在内的所有主流浏览器中都能正常工作

我用它制作了一个npm包,如果有人感兴趣的话,它还支持在这个基本href的末尾添加一个后缀。

https://www.npmjs.com/package/dynamic-base

https://github.com/codymikol/dynamic-base

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3494954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档