错误提示:
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>
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