作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
如果您没有设置 JWT_TOKEN,我们有一些路由逻辑可以将您踢到主页...我想在页面加载之前/调用 js 之前设置它。
我该怎么做?
最佳答案
你必须像这样注册 localStorage
项目:
await page.evaluate(() => {
localStorage.setItem('token', 'example-token');
});
您应该在 page.goto
页面之后执行此操作 - 浏览器必须有一个 url 才能在其上注册本地存储项目。在此之后,再次进入同一页面,这次 token 应该在页面加载之前就在这里。
这是一个完整的示例:
const puppeteer = require('puppeteer');
const http = require('http');
const html = `
<html>
<body>
<div id="element"></div>
<script>
document.getElementById('element').innerHTML =
localStorage.getItem('token') ? 'signed' : 'not signed';
</script>
</body>
</html>`;
http
.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write(html);
res.end();
})
.listen(8080);
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('http://localhost:8080/');
await page.evaluate(() => {
localStorage.setItem('token', 'example-token');
});
await page.goto('http://localhost:8080/');
const text = await page.evaluate(
() => document.querySelector('#element').textContent
);
console.log(text);
await browser.close();
process.exit(0);
})();
关于javascript - 在 puppeteer 中加载页面之前设置本地存储项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51789038/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!