gpt4 book ai didi

javascript - 如何在 xulrunner 应用程序中启用 javascript console.log()/error()/warn()?

转载 作者:行者123 更新时间:2023-11-30 17:35:51 25 4
gpt4 key购买 nike

在普通浏览器中运行的网页中,我们可以使用 console.log()/error()/warn() 将消息打印到 Web 控制台。但是,在 xulrunner 应用程序中运行的页面(html 或 xul)中,似乎 console.log()/error()/warn() 静默丢弃消息。

我设置了这些首选项:
pref("browser.dom.window.dump.enabled", true);
pref("javascript.options.showInConsole", true);
并使用 -console-jconsole 选项运行 xulrunner。

那么,是否可以在 xulrunner 应用程序中启用 javascript console.log/error/warn?

我知道 dump() 函数适用于带有 -console 的 xulrunner,但它不是标准的,并且在我的 xulrunner 中运行的网页超出了我的控制应用程序。

有关演示此问题的示例,您可以查看 https://github.com/matthewkastor/XULRunner-Examples.git,并使用 运行带有网页的“浏览器”应用程序>控制台

最佳答案

XULRunner 将丢弃传递给 console.log() 的消息,除非您将调试器附加到它。这可以通过远程调试来实现:XULRunner 作为调试对象,firefox 作为调试器。一旦调试器附加到 XULRunner 应用程序,您就可以在调试器中看到 console.log()ed 消息。

Instruction for remote debgging可以在 MDN 上找到。

您可能还想将 firefox 的 devtools.debugger.remote-enabled pref 设置为 true

在您的应用中使用此代码:

  var windowtype = ...
Components.utils.import('resource://gre/modules/devtools/dbg-server.jsm');
DebuggerServer.chromeWindowType = windowtype;
if (!DebuggerServer.initialized) {
DebuggerServer.init();
DebuggerServer.addBrowserActors(windowtype);
}
DebuggerServer.openListener(6000);

如果您的页面是 (x)html,请为 windowtype 分配 null;如果您的页面是 xul,请为 windowtype 分配与 xul:window 元素的 windowtype 属性相同的值:

  <xul:window windowtype=... >
...
</xul:window>

关于javascript - 如何在 xulrunner 应用程序中启用 javascript console.log()/error()/warn()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22086998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com