7

我参与了一个站点的开发,该站点有大量用户通过AOL Desktop v9.7 for Windows 浏览我们的站点——它在自身内部生成了浏览器窗口。调试时,我没有通常能够调用的工具(例如 Chrome 的开发者控制台;Firebug;MSIE 的F12 开发者工具)。

在 AOL Desktop 中,我似乎没有任何这些或类似的东西。有没有我可以调用的开发者模式或控制台?

4

2 回答 2

8

我在评论中的意思是,您可以使用带有手动 DOM 检查功能的非常不错的 JavaScript 调试器,它附带 Visual Studio([EDITED]包括免费版)。通过一些技巧,它也适用于 AOL 桌面(多么有趣的软件,顺便说一句:)当然,这与 IE 的 F12 工具不同,它缺乏可视 DOM 树、CSS 跟踪等交互功能等等,但它仍然允许单步执行代码、观察本地和对象、评估表达式和访问 DOM 元素。这是一个非常宝贵的工具,我在托管 WebBrowser 控件的项目中经常使用它。毕竟,这也是 AOL 所做的。无论如何,如果您已经对此很熟悉,请给这篇文章一个微笑并忽略它。否则,请继续阅读:)


我在带有 IE9、Visual Studio 2012 Pro (Update3) 和最新的 AOL Desktop 9.7 的 Win7 SP1 VM 下测试了以下内容。[已编辑]它也适用于免费版Visual Studio 2012 Express for Desktop,Update3。

唯一的主要障碍是,在进入调试器大约 20 秒后,AOL 浏览器会自行重启,从而与调试器断开连接。解决方法是关闭 AOL 并删除以下文件:

"C:\Program Files (x86)\AOL Desktop 9.7\" 
    shellmon.exe
    shellmon.ini
    shellrestart.exe

然后,我使用以下基本 HTML 文件进行调试(作为 localhost 根目录中的“debug.html”):

<!doctype html>
<html>
<head>
<title>Debugger Test Page</title>
<script>
function debugPrompt()
{
    if (confirm("debug?"))
    {
        debugger; // breakpoint
        alert("after debugger");
    }
}

document.onkeydown = function()
{
    if (event.altKey && event.ctrlKey && event.keyCode === 'D'.charCodeAt(0))
    {
        event.cancelBubble = true;
        debugPrompt();
        return;
    }
}
</script>
</head>
<body>
<button onclick="debugPrompt()">Debug</button>
</body>
</html>

这就是我所做的:

  • 确保在Internet ExplorerOther的 IE 设置中启用脚本调试

IE 脚本调试设置


  • 确保[x] ScriptVS2012 Debugging Settings, Just-In-Time部分中被选中([EDITED]这个功能在VS2012 Express中缺失,但它并不重要):

VS JIT 调试设置


  • 运行 AOL 并导航到 localhost/debug.html。

  • 通过Debug/Attach to Process菜单运行 Visual Studio 并附加到aolbrowser.exe进程(使用脚本作为目标类型的代码) :

VS 附加到进程


  • 回到 AOL 并点击 Ctrl-Alt-D(在上面列出的我的 JavaScript 中调用“调试器”提示)。接下来,我在debugger;代码行的 VS 调试器中。此时,所有常用的调试功能都可用。请注意立即窗口面板和Watch1面板。此外,不像我那样使用关键字硬编码断点,debugger可以使用 Visual Studio解决方案面板(一旦附加了调试器)来选择页面加载的 JavaScript 文件之一并交互式地切换断点。

VS 调试 AOL


现在,我没有 Visual Studio Express 2012 来验证它是否可以使用它,尽管我认为应该可以。稍后我会尝试一下。

[更新]以上几乎所有内容都适用于免费提供的Visual Studio 2012 Express for Desktop w/ Update3,但有一个例外:似乎缺少即时调试选项。不过,这不是一个阻止程序,因为它仍然可以附加到正在运行的 AOL 进程并以相同的方式调试当前加载的页面。

PS。感谢您对我的一个无关问题的自愿悬赏,这是一个非常好的姿态。

于 2013-08-17T05:08:58.870 回答
1

以防万一有人来这里寻找信息:AOL Desktop 的最新 9.8 版本现在包括 Chrome 的开发人员工具,当您按 F12 时会在新窗口中打开。

于 2016-04-07T14:47:07.750 回答