- From: liudonghua <notifications@github.com>
- Date: Tue, 04 Apr 2023 21:28:54 -0700
- To: WICG/webcomponents <webcomponents@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <WICG/webcomponents/issues/903/1496901466@github.com>
> I filed https://bugzilla.mozilla.org/show_bug.cgi?id=1673811 on that. Note that `setTimeout` is absolutely the wrong approach here and might very well fire at the wrong time. You want to observe actual mutations to the tree using mutation observers.
@annevk Hi, could you provide a more detailed example.
I tried the following `MutationObserver` code, but the `innerText` is still undefined.
```js
class PyxelRunElement extends HTMLElement {
static get observedAttributes() {
return ["root", "name", "script", "packages", "gamepad"];
}
observer = new MutationObserver(() => {
console.log("callback that runs when observer is triggered");
console.log(`this.innerText: ${this.innerText}`);
});
constructor() {
super();
// https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver/observe
this.observer.observe(this, { subtree: true, childList: true, characterData: true });
}
connectedCallback() {
console.info("connectedCallback");
// https://github.com/WICG/webcomponents/issues/903
setTimeout(() => {
console.log(`this.innerText: ${this.innerText}`);
}, 0);
}
// // Not working
// renderedCallback() {
// console.info("renderedCallback");
// console.log(`this.innerText: ${this.innerText}`);
// }
attributeChangedCallback(name, _oldValue, newValue) {
this[name] = newValue;
console.info(`attributeChangedCallback: ${name} = ${newValue}`);
}
}
window.customElements.define("pyxel-run", PyxelRunElement);
```
--
Reply to this email directly or view it on GitHub:
https://github.com/WICG/webcomponents/issues/903#issuecomment-1496901466
You are receiving this because you are subscribed to this thread.
Message ID: <WICG/webcomponents/issues/903/1496901466@github.com>
Received on Wednesday, 5 April 2023 04:29:00 UTC