小木子子耳 2017-06-30 04:09 采纳率: 0%
浏览 1257

js中,到底什么时候用window.onload????

 HTML代:<html >
  <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   <script type="text/javascript" src="app.js"></script>

  </head>
  <body>
  <h1>Web Storage 示例</h1>
  <div>
  <p id="xian"></p>
 <input type="text" id="mg" >
 <input type="button" value="保存数据" onclick="saveStorage('mg');">
 <input type="button" value="读取数据" onclick="loadStorage('xian');">
 </div>
  </body>
</html>

外调的js如下:
window.onload=function(){
    function saveStorage(id){
        var target=document.getElementById(id);
        var str=target.value;
        sessionStorage.setItem("message",str);
    }
    function loadStorage(id){
        var target=document.getElementById(id);
        var msg=sessionStorage.getItem("message");
        target.innerHTML=msg;
    }
};
用了window.onload之后就报错。去掉它就成功。
可是window.onload函数不就是等页面加载完成之后再去执行么?感觉没有什么错误啊,,哭泣。求解答





  • 写回答

5条回答 默认 最新

  • Rattenking Python领域优质创作者 2017-06-30 05:56
    关注

    onclick="saveStorage('mg');"和onclick="loadStorage('xian');"调用的window对象中的saveStorage和loadStorage,可是你的代码这两个函数在load的匿名函数中,是局部函数定义,所以调不到,会报错。这么写,就不会报错了。

     window.onload=function(){
        var saveStorage = window.saveStorage = function(id){
            var target=document.getElementById(id);
            var str=target.value;
            sessionStorage.setItem("message",str);
        };
        var loadStorage = window.loadStorage = function(id){
            var target=document.getElementById(id);
            var msg=sessionStorage.getItem("message");
            target.innerHTML=msg;
        };
    };
    
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器