$ window.location.origin在使用IE时给出了错误的值

时间:2014-03-21 16:24:27

标签: javascript internet-explorer

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

  

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

实施例

url:http://localhost:8080/products/search

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

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

我如何在IE上获得正确的价值?

2 个答案:

答案 0 :(得分:71)

您可能还需要端口号。如果是这样,您可以使用此polyfill

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

此polyfill已经是Modernizr的一部分。

答案 1 :(得分:30)

问题(像往常一样)是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: '');
}