javascript - Safari 中的 Polymer 组件调度事件

标签 javascript polymer polymer-2.x

我有一个自定义 Polymer 2+ 组件,如下所示:

<my-button id="my-button"></my-button>

在组件内部,我在几个地方(在 ready() 上、在按下鼠标时等)都有这段代码用于测试:

this.dispatchEvent(new Event('test'));
this.dispatchEvent(new CustomEvent('testCustom', {detail: {hey:'hey'}, bubbles:true, composed: true}));

在 Chrome 中,两者都可以被捕获并记录在实现按钮的以下监听器中:

var myEl = document.getElementById('my-button')

myEl.addEventListener('test', function(){
   console.log('test reached');
})

myEl.addEventListener('testCustom', function(ev){
   console.log('test custom reached');
})

但是,在 macOS Sierra 上的 Safari 11 中,情况并非如此。 CustomEvent Safari 应该支持,我在这里做了一些愚蠢的事情吗?

最佳答案

好吧,我明白了,但答案很奇怪。如果我改变这一行:

var myEl = document.getElementById('my-button')

var myEl = document.querySelector('my-button')

它会突然在 Safari 中工作。我没有解释为什么,不应该有命名冲突,因为 getElementById() 应该仍然能够选择元素。

关于javascript - Safari 中的 Polymer 组件调度事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47085174/

相关文章:

javascript - PhoneGap 上的 Ajax 请求在 2G 上比 3G 上更快

javascript - 使用 f 时 bool 值未更新 :ajax onevent

javascript - 单选按钮组的 jQuery 迭代验证

javascript - polymer 生命周期 : Why are properties not yet loaded from DOM attributes at 'Attached' callback?

css - 覆盖 app-header-layout 的影子 DOM 样式

javascript - getElementById 具有模型中的唯一 id

javascript - polymer 核心输入commitedValue事件

polymer - 将核心元素和纸质元素硫化到一个文件中?

polymer - scala.js 中真正的 JS 类来开发 webcomponents

javascript - polymer 2.0建筑构件