$window.location.origin дает неправильное значение при использовании IE

$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 ответа

Решение

Вам также может понадобиться номер порта. Если это так, вы можете использовать этот polyfill

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: '');
}
Другие вопросы по тегам