我具有将<link>
元素追加到文档并返回Promise的功能,当样式表完成加载link.onload
时,Promise将解决:
async function appendStyle(key: string, url: string): Promise<HTMLLinkElement> {
return new Promise<HTMLLinkElement>((resolve): void => {
const link: HTMLLinkElement = document.createElement("link");
const headElement: HTMLHeadElement = document.getElementsByTagName("head")[0];
link.onload = function (this: HTMLLinkElement): void {
resolve(this);
};
link.dataset[keyDataAttribute] = key;
link.setAttribute("rel", "stylesheet");
link.setAttribute("type", "text/css");
link.setAttribute("href", url);
headElement.appendChild(link);
});
}
是否可以在浏览测试中模拟获取外部样式表(我使用的是Karma + Jasmine)?
fetch-mock
仅模拟全局window.fetch
,但浏览器不使用它们来获取资源。样式表,脚本或图像。