首页 > 解决方案 > 如果任何地方有“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

标签: javascriptfirefoxfirefox-addon

解决方案


如果该代码不在函数内,则 return 是语法错误。– 尖尖的

请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Bad_return_or_yield


推荐阅读