如何抽象出浏览器的 window 对象的用法?
How to abstract away the usage of browser's window object?
如何在使用 Aurelia 框架时抽象出浏览器 window
对象的用法?例如,在使用 setInterval
或 addEventListener
等功能时,我想避免直接依赖浏览器。
Aurelia 有一个叫做 平台抽象库 的东西,理论上它应该提供我正在寻找的功能。但是,在写这个问题时,我找不到任何关于它的文档。
几个例子:
import {DOM, PLATFORM, FEATURE} from 'aurelia-pal';
PLATFORM.addEventListener('click', e => ...);
PLATFORM.requestAnimationFrame(() => ...);
let event = DOM.createCustomEvent('foo', { bubbles: true });
DOM.dispatchEvent(event);
let element = DOM.createElement('div');
if (FEATURE.shadowDOM && FEATURE.scopedCSS && FEATURE.htmlTemplateElement) {
...
}
PAL 中没有 setTimeout
/ setInterval
- 我认为是因为 aurelia 不使用 setTimeout
。 我添加了一个 issue 来添加这些。
如何在使用 Aurelia 框架时抽象出浏览器 window
对象的用法?例如,在使用 setInterval
或 addEventListener
等功能时,我想避免直接依赖浏览器。
Aurelia 有一个叫做 平台抽象库 的东西,理论上它应该提供我正在寻找的功能。但是,在写这个问题时,我找不到任何关于它的文档。
几个例子:
import {DOM, PLATFORM, FEATURE} from 'aurelia-pal';
PLATFORM.addEventListener('click', e => ...);
PLATFORM.requestAnimationFrame(() => ...);
let event = DOM.createCustomEvent('foo', { bubbles: true });
DOM.dispatchEvent(event);
let element = DOM.createElement('div');
if (FEATURE.shadowDOM && FEATURE.scopedCSS && FEATURE.htmlTemplateElement) {
...
}
PAL 中没有 setTimeout
/ setInterval
- 我认为是因为 aurelia 不使用 我添加了一个 issue 来添加这些。setTimeout
。