onBeforeUnload不是从无头浏览器触发的

时间:2018-06-13 08:18:10

标签: javascript node.js javascript-events onbeforeunload puppeteer

我正在使用pupeteer在nodeJS上使用无头chrome。

我正在浏览本地网站并抓取内容,阅读所有锚定网址并将其内容保存在文件中。

$(window).on("beforeunload", function() {  
    //AJAX call
};

另一方面,在我的本地网站上,对于每个页面,我正在执行AJAX调用

DOMContentLoaded

我发现如果我从浏览器浏览我的网站,那么当我离开每个页面时,就会执行此AJAX调用。 但是当我通过上面的NodeJS代码从无头浏览器浏览我的网站时,AJAX调用没有被调用

为了验证,我将AJAX调用放在onBeforeUnload事件中,并且它是从无头浏览器调用的。所以问题在于{{1}}

可能在我的nodeJS代码中,我不是关闭每个页面,因此事件没有被调用。

我想知道我可以将事件更改为在无头浏览器和普通浏览器的页面上调用AJAX的最后一件事吗?

谢谢

1 个答案:

答案 0 :(得分:0)

pptr v1.4.0起,您可以将runBeforeUnload选项传递给page.close方法:

await page.close({runBeforeUnload: true});