如果任何地方有 "return" 语句,Firefox 插件的内容脚本将不会 运行
Firefox addon's content script will not run if there is a "return" statement anywhere
我正在开发一个 Firefox 插件,它利用内容脚本向网站添加一些附加功能。如果我的内容脚本包含 return 语句,代码将不会 运行 - 甚至脚本第一行中的 "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
我正在开发一个 Firefox 插件,它利用内容脚本向网站添加一些附加功能。如果我的内容脚本包含 return 语句,代码将不会 运行 - 甚至脚本第一行中的 "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