有没有一个简单的方法可以从一个完整的URL开始:
document.location.href = "http://aaa.bbb.ccc.com/asdf/asdf/sadf.aspx?blah"
只提取主部分:
aaa.bbb.ccc.com
肯定有JavaScript函数能可靠地做到这一点,但我找不到。
有没有一个简单的方法可以从一个完整的URL开始:
document.location.href = "http://aaa.bbb.ccc.com/asdf/asdf/sadf.aspx?blah"
只提取主部分:
aaa.bbb.ccc.com
肯定有JavaScript函数能可靠地做到这一点,但我找不到。
当前回答
我想具体说明一些事情。如果有人想要得到完整的url路径像我需要的,可以使用:
var fullUrl = window.location.protocol + "//" + window.location.hostname + window.location.pathname;
其他回答
use
window.location.origin
对于:“http://aaa.bbb.ccc.ddd.com/sadf.aspx?blah”
你会得到:http://aaa.bbb.ccc.ddd.com/
我想具体说明一些事情。如果有人想要得到完整的url路径像我需要的,可以使用:
var fullUrl = window.location.protocol + "//" + window.location.hostname + window.location.pathname;
您可以使用/来分割URL字符串
const exampleURL = “Https://exampleurl.com/page1/etc/etc” const URLsplit = exampleURL.split(“/”) console.log(网址拆分) console.log(URLsplit[2])
结果。exampleurl.com
还有另一个hack我使用,从来没有看到任何StackOverflow响应: 使用图像的“src”属性将生成站点的完整基本路径。 例如:
var dummy = new Image;
dummy.src = '$'; // using '' will fail on some browsers
var root = dummy.src.slice(0,-1); // remove trailing '$'
在http://domain.com/somesite/index.html这样的URL上, Root将被设置为http://domain.com/somesite/。 这也适用于localhost或任何有效的基本URL。
注意,这将导致对$ dummy映像的HTTP请求失败。 您可以使用现有的映像来避免这种情况,只需稍微修改代码。
另一种变体使用虚拟链接,对HTTP请求没有副作用:
var dummy = document.createElement ('a');
dummy.href = '';
var root = dummy.href;
不过,我并没有在每个浏览器上测试它。
检查:
alert(window.location.hostname);
这将返回主机名www.domain.com
and:
window.location.host
将返回域名与端口如www.example.com:80
为完整的参考检查Mozilla开发者网站。