当前位置: 首页 > news >正文

使用 puppeteer 加载 html 文件来运行 js 文件

遇到一个需求, 在浏览器环境下来运行 js sdk 文件, 这个 js 文件是不能运行在 nodejs 环境下的; 所以通过 puppeteer 无头浏览器来运行代码获取对应的结果。

首先是安装插件 puppeteer,然后创建一个项目, 我这里是express;
这里是主要的代码。

const puppeteer = require('puppeteer');
const path = require('path')
const htmlPath = path.join(__dirname, './index.html');function runCodeInBrowser() {return new Promise(async (resolve, reject) => {try {const browser = await puppeteer.launch();const page = await browser.newPage();await page.goto(`file://${htmlPath}`)// 执行您自己的代码const result = await page.evaluate(() => {return test()});await browser.close();resolve(result);} catch (error) {reject(error)}})
}module.exports = runCodeInBrowser

代码解释:
await page.goto(`file://${htmlPath}`)这里是加载本地html文件, 在html文件里面导入你的js文件<script src="./test.js"></script>, 然后就通过 page.evaluate(() => { return test() }); 这个函数来获取你testjs文件里面的函数了; 需要注意的是, testjs文件里面的函数需要是全局变量;

demo

http://www.lryc.cn/news/192137.html

相关文章:

  • Java 操作 Excel:生成数据、设置单元格样式、设置数据有效性(hutool)
  • YOLOv5算法改进(11)— 主干网络介绍(MobileNetV3、ShuffleNetV2和GhostNet)
  • ideal远程Debug部署在服务器上的服务详解
  • 基于SSM的校园音乐平台系统
  • 07_03文件系统怎么玩的
  • php实战案例记录(24)不要键名只保留值的算法
  • 【交付高质量,用户高增长】-用户增长质量保证方法论 | 京东云技术团队
  • LMI FocalSpec 3D线共焦传感器 使用笔记1
  • 四、RocketMQ发送普通消息、批量消息和延迟消息
  • idea自定义 postfix completion提高编码效率
  • 解锁学习电路设计的正确姿势!
  • 【Linux】 ps命令使用
  • 打造高效的分布式爬虫系统:利用Scrapy框架实现
  • SpringCloud组件Ribbon的IRule的问题排查
  • 比较完整一些chatGPT项目代码(权威)
  • Python - 生成二维码、条形码
  • 8+纯生信,多组机器学习+分型探讨黑色素瘤发文思路。
  • GPU高性能面试-写一个ReduceKernel
  • 深入探索STARK的安全性和可靠性——STARKs全面安全分析
  • WPF 控件分辨率自适应问题
  • CANoe创建仿真工程
  • Scanner 输入回车跳不出循环的解决方法
  • docker 启动 mysql 通过防火墙设置端口无法访问解决方案
  • 智能制造优化,RFID生产线管理系统解决方案
  • 【Mybatis】基于Mybatis插件+注解,实现敏感数据自动加解密
  • 【特纳斯电子】基于物联网的指纹密码锁系统设计-实物设计
  • 【牛客面试必刷TOP101】Day9.BM37 二叉搜索树的最近公共祖先和BM42 用两个栈实现队列
  • 10.12 校招 实习 内推 面经
  • redis 生成流水工具类
  • BGP服务器租用腾讯云和阿里云价格对比