我有一个编写Chrome扩展程序,它获取一个围棋(棋盘游戏)的截图,然后下载到本地系统。
虽然扩展可以工作,但在不重新加载页面的情况下,我不能连续调用扩展两次,因为如果我尝试这样做,就会得到错误:
Uncaught SyntaxError: Identifier 'BadukFlash' has already been declared (at baduk_flash.js:1:1)发布于 2022-09-07 13:06:45
当用户单击该操作时,扩展将html2canvas.js和baduk_flash.js注入active选项卡。
baduk_flash.js声明了类BadukFlash。
当用户再次单击操作时,所有这些都会再次发生。即重新声明类BadukFlash。
此时,由于语法错误,baduk_flash.js停止执行。如果baduk_flash.js继续运行,那么变量bf也将被重新声明。
解决这一问题的可能方法:
最干净的方法是通过在content_scripts中使用"content_scripts“字段将内容脚本注入静态声明:
当用户单击该操作时,服务工作人员应向active选项卡中的内容脚本发送消息。
但是,您必须事先知道要将内容脚本注入哪些页面。如果您不知道这一点,您必须以编程的方式注入它,并检查它是否已经被注入:
https://stackoverflow.com/questions/73635057
复制相似问题