【问题标题】:UserScript - Empty error console in OperaUserScript - Opera 中的空错误控制台
【发布时间】:2011-09-10 21:48:53
【问题描述】:

我正在编写一个用户脚本 (=Greasemonkey),我在 FireFox 中开发,但在 Opera、FF 和 Chrome 中工作。我在 Firefox 中更改了整个脚本,用变量替换了所有文本,以便能够轻松地将脚本移植到其他语言。现在它不再在 Opera 中运行,并且它不会在控制台(蜻蜓)中显示任何错误。该脚本什么都不做,所以一定有一些语法错误,Firefox 可以处理,但 Opera 不行。

正如我所说,我没有使用任何特定的 FireFox 功能 (GM_*):我只是用新的“翻译”数组中定义的变量替换了脚本中的字符串。

插入我的脚本的代码:

(
 function()
 {
    var script = document.createElement("script");
    script.textContent = "(" + myFunctionName + ")()";
    document.body.appendChild(script);
 }
)();

所以...

  • 是否有一些 Firefox 可以处理但 Opera 不能处理的 JavaScript 内容?

  • 或者我可以让错误控制台为用户脚本工作吗?

我做了一些谷歌搜索并搜索了这些论坛,但找不到任何有用的东西......

PS:我首先在 Opera 论坛上发布了这个,但我认为我有更好的机会在 SOF 上找到“调试解决方法”。

PPS:与此同时,我也尝试使用 JS Lint 来定位问题,但是当你打喷嚏时会出现错误。

【问题讨论】:

  • script.textContent = "(" + myFunctionName + ")()"; 形式不佳,可能是问题的一部分(我不在 Opera 上开发)。这会更好script.textContent = "(" + myFunctionName.toString() + ")()";
  • 其他人告诉我删除 .toString() 因为它是上下文中的默认行为?
  • 至少是某些浏览器的行为。我不知道它是否是规范的一部分。但是,删除 toString() 会混淆代码应该做的事情——这总是一种不好的做法。

标签: javascript debugging greasemonkey opera-dragonfly


【解决方案1】:

消息控制台 (Ctrl+Shift+O) 应包含来自用户脚本的错误。或者,您可以尝试将您的脚本打包成一个扩展并使用 Dragonfly 进行调试:http://dev.opera.com/articles/view/converting-userjs-to-extensions/

【讨论】:

  • (无法再编辑以前的帖子)我已将 UserJS 转换为 oex 文件,现在正在尝试查找错误...
  • 现在可以使用了。使用“return”作为对象的字段显然不是一个好主意。不过,我从未设法在 Opera 错误控制台中看到任何错误。在这种情况下滥用 return 并不会打扰 Firefox...
  • Ctrl+Shift+O 未在此处列出,但它包含在两个默认键配置中。或者,可以通过 Opera->Page->Developer Tools->Error Console 找到该错误控制台
猜你喜欢
  • 2020-05-14
  • 2013-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-05
  • 2016-05-14
  • 1970-01-01
相关资源
最近更新 更多