Polymer cross浏览器事件

时间:2016-11-02 20:03:05

标签: polymer polymer-1.0

我读到这个吗?如果Shady DOM没有事件重定向,这是否意味着如果您需要重定向,并且您支持任何没有ShadowDOM(也称为iPhone)的浏览器,您将始终必须手动执行吗? https://www.polymer-project.org/1.0/docs/devguide/events#retargeting

我想解决的问题是Polymer客户元素之间的事件通信。我希望一些元素成为事件的消费者,而其他元素则成为生产者。但是,像Safari这样的浏览器在我们支持的列表中,我相信这意味着他们将使用阴影DOM。

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

ImageView

我想创建一个<wut-action async remote="false" file="/actions/saveInventory.js"> <wut-button class="saveInventory"> </wut-button> </wut-action> 自定义元素,可以生成<wut-button>个事件。我希望doAction使用<wut-action>事件(监听器)。我假设因为冒泡,我需要做如上所示的组合。

在阅读文档后我很担心这个设计不起作用。想法?

1 个答案:

答案 0 :(得分:0)

在我的测试中,Shady和Shadow DOM都支持从分布式子节目中侦听事件。您的设计适用于各种浏览器。我在Chrome 54,Firefox 49和Safari 10上验证了这一点。

假设wut-button触发名为“x-event”的事件,wut-action可以listen对此事件进行codepen

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

{{3}}