返回

无需纠结IE11,教你window.location.origin兼容性处理

前端

window.location.origin是什么?

window.location.origin是一个只读属性,它返回当前URL的协议、主机和端口。它与window.location.href类似,但它不包含路径或查询字符串。

window.location.origin的兼容性

window.location.origin属性在IE11中不可用。这意味着如果您想要在IE11中使用window.location.origin,您需要使用一个polyfill。

如何解决window.location.origin的兼容性问题?

解决window.location.origin兼容性问题的方法有几种。一种方法是使用polyfill。

如何兼容IE11?

要兼容IE11,您可以使用兼容性库,如polyfill.io。polyfill.io提供了一个window.location.origin polyfill,可以在IE11中使用。

polyfill.io的用法很简单。您只需要将以下代码添加到您的HTML文件中即可:

<script src="https://cdn.polyfill.io/v3/polyfill.min.js"></script>

然后,您就可以在IE11中使用window.location.origin属性了。

除了使用polyfill之外,您还可以使用window.location.protocol、window.location.hostname和window.location.port属性来构建一个兼容IE11的window.location.origin属性。

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

这种方法与使用polyfill相比,性能稍差一点,但它仍然可以在IE11中使用。

总而言之,兼容window.location.origin的方法有如下:
1、使用window.location.protocol、window.location.hostname和window.location.port属性来构建一个兼容IE11的window.location.origin属性。
2、使用兼容性库,如polyfill.io。
3、使用其他第三方库,如jQuery。
4、使用以下兼容脚本:

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

只要您使用兼容性库或脚本,您就可以在IE11中使用window.location.origin属性。