d_cloud
d_cloud
  • 发布:2015-03-06 16:43
  • 更新:2015-03-06 17:20
  • 阅读:5755

打开页面时提示 Cannot read property 'innerHTML' of null at js/common.js:147

分类:HTML5+

错误提示:
Uncaught TypeError: Cannot read property 'innerHTML' of null at js/common.js:147
Uncaught TypeError: Cannot read property 'innerHTML' of null at js/common.js:147

以下为代码

<!DOCTYPE html>  
<html>  

    <head>  
        <meta charset="utf-8">  
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />  
        <title></title>  
        <link href="css/mui.min.css" rel="stylesheet" />  
        <script src="js/mui.min.js"></script>         
        <script src="js/app.js"></script>  

    </head>  

    <body>  
        <header class="mui-bar mui-bar-nav">  
            <a href="#offCanvas" id="show-btn" class="mui-icon mui-icon-bars mui-pull-left"></a>  
            <a id="info" class="mui-icon mui-icon-info-filled mui-pull-right" style="color: #999;"></a>  
            <h1 class="mui-title">我的标题2</h1>  
        </header>  
        <div class="mui-content">  

<div class="mui-content-padded">  
                <ul id="list" class="mui-table-view mui-table-view-chevron">  
                </ul>  
            </div>  

            <div id="refreshContainer" class="mui-content mui-scroll-wrapper">  
            <div class="mui-scroll">  
                <!--数据列表-->  
                <ul class="mui-table-view mui-table-view-chevron">  
                     <li class="mui-table-view-cell">  
                        <div class="mui-slider-right">  
                            <a class="mui-btn mui-btn-red">删除</a>  
                        </div>  
                        <div class="mui-slider-handle">  
                            <a  id="fresh" class="mui-navigate-right">待办事项2</a>  
                        </div>  
                    </li>  
                </ul>  
            </div>  
        </div>  
        <div id="output">  
            Storage管理本地数据存储<br />。  
        </div>  
        </div>  
    </body>  
    <script type="text/javascript">  
         //tap为mui封装的单击事件   
        document.getElementById("fresh").addEventListener('tap', function() {  
            mui.openWindow({  
                id: 'list2',  
                url: 'list.html'  

            });  
        });   
        //tap为mui封装的单击事件  
        document.getElementById("info").addEventListener('tap', function() {  
            mui.openWindow({  
                url: 'info.html',  
                id: 'info'  
            });  
        });  
    </script>  
        <script type="text/javascript" src="js/common.js"></script>  
<script type="text/javascript" charset="utf-8">  

            mui.init({  
                swipeBack: false,  
                subpages:{  
                          url:"index.html",//下拉刷新内容页面地址  
                          id:"#refreshContainer" //内容页面标志  
                        },  
                pullRefresh: {  
                    container: "#refreshContainer", //下拉刷新容器标识,querySelector能定位的css选择器均可,比如:id、.class等  
                    down: {  
                         contentover : "释放立即刷新",  
                         contentdown : "下拉可以刷新",  
                        contentrefresh: '正在下拉加载...',  
                        callback: pulldownRefresh //必选,刷新函数,根据具体业务来编写,比如通过ajax从服务器获取新数据;  
                    },  
                    up: {  
                        contentrefresh: '正在上拉刷新...',  
                        callback: pullupRefresh  
                    }  
                },  
                back: back  
            });  

            /**  
             * 下拉刷新具体业务实现  
             */  
            function pulldownRefresh() {alert("pulldownRefresh");  
                setTimeout(function() {  
                    var table = document.body.querySelector('.mui-table-view');  
                    var cells = document.body.querySelectorAll('.mui-table-view-cell');  
                    for (var i = cells.length, len = i + 3; i < len; i++) {  
                        var li = document.createElement('li');  
                        li.className = 'mui-table-view-cell';  
                        li.innerHTML = '<a class="mui-navigate-right">Item ' + (i + 1) + '</a>';  
                        //下拉刷新,新纪录插到最前面;  
                        table.insertBefore(li, table.firstChild);  
                    }  
                    mui('#refreshContainer').pullRefresh().endPulldownToRefresh(); //refresh completed  
                }, 1500);  
            }  
        var count = 0;  
            /**  
             * 上拉加载具体业务实现  
             */  
            function pullupRefresh() {  
                setTimeout(function() {  
                    mui('#refreshContainer').pullRefresh().endPullupToRefresh((++count > 2)); //参数为true代表没有更多数据了。  
                    var table = document.body.querySelector('.mui-table-view');  
                    var cells = document.body.querySelectorAll('.mui-table-view-cell');  
                    for (var i = cells.length, len = i + 3; i < len; i++) {  
                        var li = document.createElement('li');  
                        li.className = 'mui-table-view-cell';  
                        li.innerHTML = '<a class="mui-navigate-right">刷新上拉Item ' + (i + 1) + '</a>';  
                        table.appendChild(li);  
                    }  
                }, 1500);  

            }  
            if (mui.os.plus) {  
                mui.plusReady(function() {  
//                  setTimeout(function() {  
//                      mui('#refreshContainer').pullRefresh().pullupLoading();  
//                  }, 1000);  

                getStorageData();  

                plus.key.addEventListener('backbutton',function(){  
                    if(confirm('确认退出应用?')){  
                        plus.runtime.quit();  
                    }  
                },false);  

                });  
            } else {  
                mui.ready(function() {  
                    mui('#refreshContainer').pullRefresh().pullupLoading();  
                });  
            }  

        var main, menu, mask = mui.createMask(closeMenu);  
        var showMenu = false,  
            mode = 'main-move';  

        function back() {  
                if (showMenu) {  
                    //菜单处于显示状态,返回键应该先关闭菜单,阻止主窗口执行mui.back逻辑;  
                    closeMenu();  
                    return false;  
                } else {  
                    //菜单处于隐藏状态,执行返回时,要先close菜单页面,然后继续执行mui.back逻辑关闭主窗口;  
                    menu.close('none');  
                    return true;  
                }  
            }  
            //plusReady事件后,自动创建menu窗口;  
        mui.plusReady(function() {  
            main = plus.webview.currentWebview();  
            //侧滑菜单默认隐藏,这样可以节省内存;  
            menu = mui.preload({  
                id: 'offcanvas-drag-right-plus-menu',  
                url: 'index-menu.html',  
                styles: {  
                    left: 0,  
                    width: '60%',  
                    zindex: 9997  
                }  
            });  
        });  
        /**  
         * 显示菜单菜单  
         */  
        function openMenu() {  
                if (!showMenu) {  
                    //侧滑菜单处于隐藏状态,则立即显示出来;  
                    //显示完毕后,根据不同动画效果移动窗体;  
                    menu.show('none', 0, function() {  
                        switch (mode) {  
                            case 'main-move':  
                                //主窗体开始侧滑;  
                                main.setStyle({  
                                    left: '60%',  
                                    transition: {  
                                        duration: 150  
                                    }  
                                });  
                                break;  
                            case 'menu-move':  
                                menu.setStyle({  
                                    left: '0%',  
                                    transition: {  
                                        duration: 150  
                                    }  
                                });  
                                break;  
                            case 'all-move':  
                                main.setStyle({  
                                    left: '60%',  
                                    transition: {  
                                        duration: 150  
                                    }  
                                });  
                                menu.setStyle({  
                                    left: '0%',  
                                    transition: {  
                                        duration: 150  
                                    }  
                                });  
                                break;  
                        }  
                    });  
                    //显示遮罩  
                    mask.show();  
                    showMenu = true;  
                }  
            }  
            /**  
             * 关闭侧滑菜单  
             */  

        function closeMenu() {  
            if (showMenu) {  
                //关闭遮罩;  
                mask.close();  
                switch (mode) {  
                    case 'main-move':  
                        //主窗体开始侧滑;  
                        main.setStyle({  
                            left: '0',  
                            transition: {  
                                duration: 150  
                            }  
                        });  
                        break;  
                    case 'menu-move':  
                        //主窗体开始侧滑;  
                        menu.setStyle({  
                            left: '-60%',  
                            transition: {  
                                duration: 150  
                            }  
                        });  
                        break;  
                    case 'all-move':  
                        //主窗体开始侧滑;  
                        main.setStyle({  
                            left: '0',  
                            transition: {  
                                duration: 150  
                            }  
                        });  
                        //menu页面同时移动  
                        menu.setStyle({  
                            left: '-60%',  
                            transition: {  
                                duration: 150  
                            }  
                        });  

                        break;  
                }  

                //等窗体动画结束后,隐藏菜单webview,节省资源;  
                setTimeout(function() {  
                    menu.hide();  
                }, 200);  
                //改变标志位  
                showMenu = false;  
            }  
        }  

         //变换侧滑动画移动效果;  
        mui('.mui-input-group').on('change', 'input', function() {  
            if (this.checked) {  
                switch (this.value) {  
                    case 'main-move':  
                        //仅主窗口移动的时候,menu页面的zindex值要低一点;  
                        menu.setStyle({  
                            left: '0',  
                            zindex: 9997  
                        });  
                        if (mode == 'all-move') {  
                            menu.setStyle({  
                                left: '0%'  
                            });  
                        }  
                        mode = 'main-move';  
                        break;  
                    case 'menu-move':  
                        menu.setStyle({  
                            left: '-60%',  
                            zindex: 9999  
                        });  
                        if (mode == 'all-move') {  
                            menu.setStyle({  
                                left: '0%'  
                            });  
                        }  
                        mode = 'menu-move';  
                        break;  
                    case 'all-move':  
                        //切换为整体移动  
                        //首先改变移动标志  
                        slideTogether = true;  
                        //变换menu界面初始化位置,整体移动时,Menu界面left需要在-60%的地方;  
                        menu.setStyle({  
                            left: '-60%'  
                        });  
                        mode = 'all-move';  
                        break;  
                }  
            }  
        });  

         //点击左上角图标,打开侧滑菜单;  
        document.querySelector('.mui-icon-bars').addEventListener('tap', openMenu);  
        document.getElementById("show-btn").addEventListener('tap', openMenu);  
         //在android4.4中的swipe事件,需要preventDefault一下,否则触发不正常  
         //故,在dragleft,dragright中preventDefault  
        window.addEventListener('dragright', function(e) {  
            e.detail.gesture.preventDefault();  
        });  
        window.addEventListener('dragleft', function(e) {  
            e.detail.gesture.preventDefault();  
        });  
         //主界面向右滑动,若菜单未显示,则显示菜单;否则不做任何操作;  
        window.addEventListener("swiperight", openMenu);  
         //主界面向左滑动,若菜单已显示,则关闭菜单;否则,不做任何操作;  
        window.addEventListener("swipeleft", closeMenu);  
         //menu页面向左滑动,关闭菜单;  
        window.addEventListener("menu:swipeleft", closeMenu);  

         //重写mui.menu方法,Android版本menu按键按下可自动打开、关闭侧滑菜单;  
        mui.menu = function() {  
            if (showMenu) {  
                closeMenu();  
            } else {  
                openMenu();  
            }  
        }  

        var old_back = mui.back;  
        mui.back = function(){  
          var btn = ["确定","取消"];  
          mui.confirm('确认关闭当前窗口?','MUI测试',btn,function(e){  
            if(e.index==0){  
                //执行mui封装好的窗口关闭逻辑;  
                old_back();  
            }  
          });  
        }  

            //storage 中的key  

        var STORAGE_TITLE_KEY='myTitle';  
        var STORAGE_CONTENT_KEY='myContent';  
        var STORAGE_FLAG_KEY='firstFlag';  
//获得storage中的数据条数  
        function getLengthFun(){  
         return plus.storage.getLength();  
        }  

    //获得storage中的数据   
      function getStorageData () {  
        var itemLength =getLengthFun();  
        var table = document.body.querySelector('.mui-table-view');  
        var cells = document.body.querySelectorAll('.mui-table-view-cell');  
        for (var i=0;i<itemLength; i++) {  
            var key = plus.storage.key(i);  
            var value = plus.storage.getItem(key);  
            outLine( "key:"+key+"-->value:"+value );  
                if (key.indexOf(STORAGE_TITLE_KEY)>-1) {  
                        var li = document.createElement('li');  
                        li.className = 'mui-table-view-cell';  
                        li.innerHTML = '<a class="mui-navigate-right" onclick="getDetail('+key+');"> ' + value + '</a>';  
                        table.appendChild(li);  
                }  

        }  

    }  
      //获得storage中的某条数据  
        function getDetail(eee){  
        }  
    </script>  

</html>
2015-03-06 16:43 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

找你的common.js第147行

  • d_cloud (作者)

    就是demo中例子。

    // 输出行内容

    w.outLine=function(s){

    dout.innerHTML+=s+"<br/>";//(147行代码)

    (0==dout.scrollTop)&&(dout.scrollTop=1);//在iOS8存在不滚动的现象

    };

    2015-03-06 17:26

  • DCloud_UNI_FXY

    看看你的_dout_是否存在

    2015-03-06 17:29

该问题目前已经被锁定, 无法添加新回复