環境
方法
ResourceLoader
を使用する。
1 2 3 4 5 6
| import { JSDOM, ResourceLoader } from "jsdom"; ... const resourceLoader = new ResourceLoader({ userAgent: "Mozilla/5.0", }); const dom = await JSDOM.fromURL(url, { resources: resourceLoader });
|
ただし、この方法はリソースの読み込みが発生する。
リソースが不要な場合は、一度だけリソースをフェッチする独自の ResourceLoader
を使用する。
注: フェッチされるリソースは fromURL
の url
。
one-time-fetch-resource-loader.js:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| import { ResourceLoader } from "jsdom";
export class OneTimeFetchResourceLoader extends ResourceLoader { constructor(options) { super(options); this._fetched = false; }
fetch(url, options) { if (this._fetched) { return null; } this._fetched = true; return super.fetch(url, options); } }
|
1 2 3 4 5 6 7 8
| import { JSDOM } from "jsdom";
import { OneTimeFetchResourceLoader } from "./one-time-fetch-resource-loader.js"; ... const resourceLoader = new OneTimeFetchResourceLoader({ userAgent: "Mozilla/5.0", }); const dom = await JSDOM.fromURL(url, { resources: resourceLoader });
|