mirror of
https://github.com/geekgeekrun/geekgeekrun.git
synced 2026-06-09 17:39:47 +08:00
25 lines
595 B
JavaScript
25 lines
595 B
JavaScript
export async function blockNavigation(page, predictor = (url) => true) {
|
|
console.log(`block navigation for puppeteer page from url ${page.url()}`)
|
|
await page.setRequestInterception(true)
|
|
|
|
const handler = (req) => {
|
|
if (req.isNavigationRequest() && req.frame() === page.mainFrame() && predictor(req)) {
|
|
req.abort('aborted')
|
|
} else {
|
|
try {
|
|
req.continue()
|
|
} catch {
|
|
//
|
|
}
|
|
}
|
|
}
|
|
|
|
page.on('request', handler)
|
|
|
|
return {
|
|
dispose: async () => {
|
|
page.off('request', handler)
|
|
await page.setRequestInterception(false)
|
|
}
|
|
}
|
|
} |