2016-11-02 118 views
0

我读到这个权利吗?如果Shady DOM没有重定向事件,那么这是否意味着如果您需要重定向,并且您支持任何没有ShadowDOM(又名iPhone)的浏览器,您将不得不手动执行此操作? https://www.polymer-project.org/1.0/docs/devguide/events#retargeting聚合物跨浏览器事件

我试图解决的问题是聚合物客户元素之间的事件通信。我想要一些元素成为事件的消费者,其他人则成为生产者。但是,浏览器(如Safari)位于我们的支持列表中,我相信这意味着他们将使用黑幕DOM。

所以代码示例,会去是这样的:

<wut-action async remote="false" file="/actions/saveInventory.js"> 
    <wut-button class="saveInventory"> 
    </wut-button> 
</wut-action> 

我想创建自来水产生doAction事件<wut-button>自定义元素。我想要<wut-action>消耗doAction事件(侦听器)。我假设因为冒泡,我需要做如上所示的构图。

阅读文档后,我很担心这个设计不起作用。思考?

回答

0

在我的测试中,在Shady和Shadow DOM中都支持从分布式子项监听事件。您的设计可以跨浏览器使用。我证实了这一在Chrome 54,Firefox的49和Safari 10

假设wut-button火灾名为 “X-事件” 的事件,wut-action可能listen该事件是这样的:

Polymer({ 
    is: 'wut-action', 
    listeners: { 
    'x-event': '_onEvent' 
    }, 
    _onEvent: function(e) { 
    console.log('event', e.detail); 
    } 
}); 

codepen