欢迎访问 如意编程网!

如意编程网

当前位置: 首页 > 前端技术 > HTML >内容正文

HTML

Html——ie打开项目,外引js,引入成功却报错:无法获取未定义或 null 引用的属性“getItem”

发布时间:2022/11/16 HTML 15 老码农
如意编程网 收集整理的这篇文章主要介绍了 Html——ie打开项目,外引js,引入成功却报错:无法获取未定义或 null 引用的属性“getItem” 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

参考:https://www.cnblogs.com/qq254980080/p/11785677.html

      https://blog.csdn.net/u014091101/article/details/88057449

      https://blog.csdn.net/qq_39207948/article/details/80615108

   https://blog.csdn.net/liunianqingshi/article/details/41941797?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

 

 

我的情况:页面中外引index.js,本地用ie8浏览器打开,控制台报错:

Html——ie打开项目,外引js,引入成功却报错:无法获取未定义或 null 引用的属性“getItem”

 

 

 index.js:

···
var token = sessionStorage.getItem('token');
···
var indexLoad = {
    index: function () {
        ···
    }
}
···

 

html:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=8">
    <script src="js/index.js"></script>
</head>
<body>
    ···
</body>
<script>
    $(document).ready(function () {
        indexLoad.index();
    });
</script>
</html>

 

刚开始以为是index.js没有引入成功,就在index.js的第一行打印,控制台是有输出的。排除引入失败的原因,挨个打印,发现获取token报错后,js就没有继续往下执行了,所以才会报第二个错。

 

总结:

  报错1原因 —— IE8-IE10中是需要服务器或者localhost,才能使用localStorage和sessionStorage

  报错2原因 —— js是‘单线程’语言,执行模式有两种:同步,异步

        单线程:只有一条流水线

        同步:依次在流水线上执行

        异步:流水线旁加了一个临时储物台(任务队列),会把某些模块拿到临时储物台,或者会把临时储物台的某些模块插队到流水线

         js默认模式是同步模式,按流水线执行:A,B,C,不管A里边代码运行时间多长,都要先执行完A,再执行B,再执行C

总结

以上是如意编程网为你收集整理的Html——ie打开项目,外引js,引入成功却报错:无法获取未定义或 null 引用的属性“getItem”的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得如意编程网网站内容还不错,欢迎将如意编程网推荐给好友。