Blend 頁(yè)面間通信

2018-10-17 11:32 更新

概述

當(dāng)多個(gè)layer在同一屏顯示時(shí),可能會(huì)希望在layer1做某些操作后改變layer2中的內(nèi)容。但是layers之間獨(dú)立運(yùn)行在自己的沙箱內(nèi),無(wú)法修改其它layer的內(nèi)容。這時(shí)需要通過(guò)頁(yè)面間通信來(lái)使layer1通知layer2去改自己的內(nèi)容。

頁(yè)面間借助“自定義事件”通信,被通知方用Blend.ui.on監(jiān)聽(tīng)事件,通知方用Blend.ui.fire發(fā)送事件。


Blend.ui.on監(jiān)聽(tīng)事件

示例

例子中共有兩個(gè)layer分上下同時(shí)顯示,id分別為0和subLayerId。layer-0中有一個(gè)輸入框和一個(gè)按鈕,layer-subLayerId有一個(gè)顯示框。點(diǎn)擊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);
        });

    });
});

示例源碼

在線(xiàn)獲取源碼

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)