window.location美元.使用IE时,origin给出了错误的值

$window.location.origin gives wrong value when using IE

本文关键字:错误 origin 美元 location 使用 IE window      更新时间:2023-09-26

$window.location.origin在IE上返回错误的值

origin属性返回URL的协议、主机名和端口号。

例子

url: http://localhost: 8080/产品/搜索

Chrome

:$window.location.origin返回http://localhost:8080

即:$window.location.origin返回http://localhost:8080/products/search

我如何在IE上有正确的值?

您可能还需要端口号。如果是这样,你可以使用这个填充

if (!window.location.origin) {
  window.location.origin = window.location.protocol + "//" 
    + window.location.hostname 
    + (window.location.port ? ':' + window.location.port : '');
}

这个填充已经是Modernizr的一部分。

问题(像往常一样)是IE没有window.location.origin

可以这样写:

var root = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');

或者你可以在你的javascript上面加上这段代码这样你就不用担心了

if (!window.location.origin) {
  window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');
}