javascript - 如果任何地方有“return”语句,Firefox 插件的内容脚本将不会运行
问题描述
我正在开发一个 Firefox 插件,它利用内容脚本向网站添加一些附加功能。如果我的内容脚本包含返回语句,则代码将不会运行——甚至脚本第一行中的“console.log”语句也不会运行!
我已经在 Firefox 68.0.2(64 位)上对此进行了测试。return 语句位于 if 块中,因此应该执行它之前的任何 console.log 语句 - 但它们不是。如果我注释掉“return”行,它之前和之后的所有行都会再次工作,但如果我把它留在里面,甚至第一条语句都不会执行。
console.log("Starting XX-Tools")
var ctr_player = window.VIDEO_PLAYERJS
if (typeof ctr_player === undefined) {
console.log("No player found")
return
}
console.log("Player found!")
我期待:
Starting XX-Tools
Player found
或者至少:
Starting XX-Tools
No player found
我没有输出。如果我删除该return
语句,我会得到以下输出:
Starting XX-Tools
Player found
解决方案
如果该代码不在函数内,则 return 是语法错误。– 尖尖的
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Bad_return_or_yield
推荐阅读
- php - 一次在 PHPunit 中运行所有测试,但彼此隔离
- python - 当请求来自浏览器时呈现 HTML 或当请求来自移动设备时发送 JSON 字典
- r - 从环境而不是 read.table 导入文件
- switch-statement - 如何在 Power BI 的 Switch 语句中修复 VAR 函数
- azure - 如何修复 AZ CLI 错误“找不到资源组 '..' 下的资源 '..'”?
- c++ - C++ 字符串使用 std lib 中的 find_first_of 函数检查子字符串
- opencv - 链接依赖于 OpenCV 和 Ceres-Solver 的静态库时,Opencv imread 会导致 liblapack 中的链接器错误
- python - 代码无法将 chromedriver.exe 识别为文件
- java - 如何检查我的字符串以便只允许使用字母和 $ 符号?
- sql - SQL INSERT 语句包括 WITH 和 SELECT