概述
當(dāng)多個layer在同一屏顯示時,可能會希望在layer1做某些操作后改變layer2中的內(nèi)容。但是layers之間獨立運行在自己的沙箱內(nèi),無法修改其它layer的內(nèi)容。這時需要通過頁面間通信來使layer1通知layer2去改自己的內(nèi)容。
頁面間借助“自定義事件”通信,被通知方用Blend.ui.on監(jiān)聽事件,通知方用Blend.ui.fire發(fā)送事件。

示例
例子中共有兩個layer分上下同時顯示,id分別為0和subLayerId。layer-0中有一個輸入框和一個按鈕,layer-subLayerId有一個顯示框。點擊layer-0內(nèi)的按鈕將輸入框中的內(nèi)容顯示在layer-subLayerId上。
document.addEventListener("blendready", function () {
var main = Blend.ui;
console.log('blendready');
Blend.ui.layerInit("0", function (dom) {
var subLayers = [{id:'subLayerId',url:'item.html','active':true}];
new main.LayerGroup({
layers: subLayers,
left: 0,
top: 200
});
$('#notifyBtn',dom).on("click",function(e){
var msgContent = $('#input_msg').val();
Blend.ui.fire("sendMsg", "subLayerId",{content:msgContent});
});
});
Blend.ui.layerInit("subLayerId", function (dom) {
Blend.ui.on("sendMsg", function (e) {
$('#display_msg').val( e.data.content);
});
});
});
示例源碼
在線獲取源碼
更多建議: