WebComponentsReady 在 Safari 中过早触发?
WebComponentsReady fires too soon in safari?
所以我正在研究聚合物 desktop/mobile webapp。我有一个 WebComponentsReady
侦听器附加到全局 window 对象,以确保聚合物 html 元素(以及它们所依赖的 polyfill)将在那里并在我的应用程序逻辑启动时准备就绪。在 Firefox 中运行良好(当然 chrome)。这将我们带到 safari/mobile 野生动物园。
在 safari 中,事件似乎在 polymer 完成它的工作之前就触发了。添加几秒钟的 setTimeout
包装器(> 2 似乎是最低限度的)并且一切正常。 this question 的答案似乎已过时:链接已损坏,'polymer-ready' 事件似乎不再触发。
那么我如何确保所有浏览器都支持 polymer
1) webcomponents 已准备就绪(原生或 polyfilled)
2) 所有的聚合物元件都已完成构建并准备就绪
附加事件侦听器?
setTimeout
太不确定了,我想要一个更简洁的解决方案。
使用 Polymer 1.0 中的 dom-change
事件代替 'polymer-ready'。
index.html
<body unresolved fullbleed layout vertical>
<template is="dom-bind" id="app">
app.js
var app = document.querySelector('#app');
app.addEventListener('dom-change', function() {
console.log("Polymer is ready!");
// do your thing
});
所以我正在研究聚合物 desktop/mobile webapp。我有一个 WebComponentsReady
侦听器附加到全局 window 对象,以确保聚合物 html 元素(以及它们所依赖的 polyfill)将在那里并在我的应用程序逻辑启动时准备就绪。在 Firefox 中运行良好(当然 chrome)。这将我们带到 safari/mobile 野生动物园。
在 safari 中,事件似乎在 polymer 完成它的工作之前就触发了。添加几秒钟的 setTimeout
包装器(> 2 似乎是最低限度的)并且一切正常。 this question 的答案似乎已过时:链接已损坏,'polymer-ready' 事件似乎不再触发。
那么我如何确保所有浏览器都支持 polymer
1) webcomponents 已准备就绪(原生或 polyfilled)
2) 所有的聚合物元件都已完成构建并准备就绪
附加事件侦听器?
setTimeout
太不确定了,我想要一个更简洁的解决方案。
使用 Polymer 1.0 中的 dom-change
事件代替 'polymer-ready'。
index.html
<body unresolved fullbleed layout vertical>
<template is="dom-bind" id="app">
app.js
var app = document.querySelector('#app');
app.addEventListener('dom-change', function() {
console.log("Polymer is ready!");
// do your thing
});