addons.mozilla.org 验证在 JavaScript 中显示编译时错误
addons.mozilla.org validation shows compile-time error in the JavaScript
注意:插件工作正常,但在 firefox 验证插件网站出现错误 https://addons.mozilla.org/en-us/developers/addon/validate
我的代码
panel.port.on("changing_now_speed_val", function (speed) {
var com = 'document.getElementsByTagName("video")[0].playbackRate='+speed + ';';
tabs.activeTab.attach({
contentScript: com
});
});
错误
在对其进行测试时说
https://addons.mozilla.org/en-us/developers/addon/validate
Extension Tests
JavaScript Compile-Time Error
Warning: A compile-time error in the JavaScript halted validation of that file.
Message: expected expression, got ';
resources/html5_youtube_video_speed_controller/lib/main.js
但插件正常工作
https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts/Loading_Content_Scripts
“除非您的内容脚本非常简单并且只包含一个静态字符串,否则不要使用 contentScript:如果您这样做,您的附加组件可能无法在 AMO 上获得批准。
相反,将脚本保存在单独的文件中并使用 contentScriptFile 加载它。这使您的代码更易于维护、保护、调试和审查
那里有更多信息:
也许试试:
panel.port.on("changing_now_speed_val", function (speed) {
speed = speed || 1;
if (speed.trim() === "") {
speed = 1;
}
....
这只是一些健全性检查,确保速度的值永远不会为空或空值。这应该通过 testing/validation.
中的边缘情况
speed = speed || 1;
防止代码在速度上没有传递任何内容时被破坏
和 if
条件检查不应传递空字符串。
为了使它更不易损坏,您可以检查是否可以将 speed
转换为有效整数。那将是一个很好的解决方案。
此外,参考bugzilla中的评论,您可以使用外部文件:
这可能可以通过这样的方式来完成:
var data = self.data;
panel.port.on("changing_now_speed_val", function (speed) {
var workers = tabs.activeTab.attach({
contentScriptFile:[data.url('externalFile.js')]
});
workers.emit('speedChanged', speed)
}
然后在插件的 data/
文件夹中,创建一个文件 externalFile.js
,其中应包含如下内容:
self.port.on('speedChanged', function(speed){
speed = speed || 1;
speed = speed.trim() === "" ? 1 : speed; //little ternary trick
document.getElementsByTagName("video")[0].playbackRate='+speed + ';';
}
我想这说明了一些事情。如果您有任何问题,请回复我!快乐的附加!
注意:插件工作正常,但在 firefox 验证插件网站出现错误 https://addons.mozilla.org/en-us/developers/addon/validate
我的代码
panel.port.on("changing_now_speed_val", function (speed) {
var com = 'document.getElementsByTagName("video")[0].playbackRate='+speed + ';';
tabs.activeTab.attach({
contentScript: com
});
});
错误 在对其进行测试时说
https://addons.mozilla.org/en-us/developers/addon/validate
Extension Tests
JavaScript Compile-Time Error
Warning: A compile-time error in the JavaScript halted validation of that file.
Message: expected expression, got ';
resources/html5_youtube_video_speed_controller/lib/main.js
但插件正常工作
https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts/Loading_Content_Scripts
“除非您的内容脚本非常简单并且只包含一个静态字符串,否则不要使用 contentScript:如果您这样做,您的附加组件可能无法在 AMO 上获得批准。
相反,将脚本保存在单独的文件中并使用 contentScriptFile 加载它。这使您的代码更易于维护、保护、调试和审查
那里有更多信息:
也许试试:
panel.port.on("changing_now_speed_val", function (speed) {
speed = speed || 1;
if (speed.trim() === "") {
speed = 1;
}
....
这只是一些健全性检查,确保速度的值永远不会为空或空值。这应该通过 testing/validation.
中的边缘情况speed = speed || 1;
防止代码在速度上没有传递任何内容时被破坏
和 if
条件检查不应传递空字符串。
为了使它更不易损坏,您可以检查是否可以将 speed
转换为有效整数。那将是一个很好的解决方案。
此外,参考bugzilla中的评论,您可以使用外部文件:
这可能可以通过这样的方式来完成:
var data = self.data;
panel.port.on("changing_now_speed_val", function (speed) {
var workers = tabs.activeTab.attach({
contentScriptFile:[data.url('externalFile.js')]
});
workers.emit('speedChanged', speed)
}
然后在插件的 data/
文件夹中,创建一个文件 externalFile.js
,其中应包含如下内容:
self.port.on('speedChanged', function(speed){
speed = speed || 1;
speed = speed.trim() === "" ? 1 : speed; //little ternary trick
document.getElementsByTagName("video")[0].playbackRate='+speed + ';';
}
我想这说明了一些事情。如果您有任何问题,请回复我!快乐的附加!