index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>监听子页事件</title>
<script type="text/javascript">
function plusReady(){
document.querySelector("button").addEventListener("click",function(){
var w = plus.webview.create( "newlist.html" );
w.addEventListener( "loaded", function(){
w.show();
}, false );
},false);
}
window.plus ? plusReady() : document.addEventListener("plusready",plusReady,false);
function fun(i){
document.querySelector("p").innerHTML = "你点击了第"+i+"条新闻";
}
</script>
</head>
<body>
<h2>监听子页事件</h2>
<button type="button">打开子页</button>
<p></p>
</body>
</html>
newlist.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>新闻列表0</title>
<style type="text/css">
ul:active,ul:hover{background: none;}
ul{margin: 0;padding: 0;}
li{margin: 20px;border-bottom: 1px solid #DDDDDD;}
</style>
<script type="text/javascript">
function plusReady(){
var wvs=plus.webview.all();
var pw = null;//首页ID
for (var i = wvs.length;i --;) {
if(~wvs[i].getURL().indexOf("index.html")){
pw = wvs[i];//获取到首页的webview ID
break;
}
}
var li = document.querySelectorAll("li");
for (var l = li.length; l--;) {
li[l].addEventListener("click",function(e){
//pw && pw.evalJS('document.dispatchEvent(new CustomEvent("typeEvent"))');
//触发自定义事件有点麻烦,可以使用函数调用
pw && pw.evalJS('fun('+e.target.getAttribute("data-id")+')');
plus.webview.close(plus.webview.currentWebview());//关闭当前页
},false);
}
}
window.plus ? plusReady() : document.addEventListener("plusready",plusReady,false);
</script>
</head>
<body>
<h1>新闻列表</h1>
<ul>
<li data-id="1">第1条新闻</li>
<li data-id="2">第2条新闻</li>
<li data-id="3">第3条新闻</li>
<li data-id="4">第4条新闻</li>
<li data-id="5">第5条新闻</li>
</ul>
</body>
</html>
2 个回复
太阳光
index.html
newlist.html
DCloud_UNI_CHB
获取应用启动首页的页面id:plus.runtime.appid
获取应用启动首页的web view对象:getLaunchWebview