AOL桌面的浏览器控制台?

art*_*ung 7 browser debugging webbrowser-control aol-desktop

我参与了一个网站的开发,该网站有大量用户通过AOL桌面v9.7 for Windows 查看我们的网站- 它自己生成浏览器窗口.在调试时,我没有通常可以调用的工具(例如Chrome的开发者控制台 ; Firebug; MSIE的F12开发人员工具).

当在AOL桌面内时,我似乎没有任何这些或类似的东西.是否有我可以调用的开发者模式或控制台,发掘?

nos*_*tio 8

在我的评论中,我的意思是,你可以使用一个非常不错的JavaScript调试器和Visual Studio([EDITED]包括免费版)附带的手动DOM检查功能.有了一些技巧,它也适用于AOL桌面(这是一个有趣的软件,BTW :)当然,这与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
Run Code Online (Sandbox Code Playgroud)

然后,我使用以下基本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>
Run Code Online (Sandbox Code Playgroud)

这就是我所做的:

  • 确信脚本调试启用在两个IE设置的Internet Explorer其他:

IE脚本调试设置


  • 确保在VS2012调试设置,即时部分中检查了[x]脚本([EDITED] VS2012 Express中缺少此功能,但这并不重要):

VS JIT调试设置


  • 跑AOL并导航到localhost/debug.html.

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

VS附加到流程


  • 返回AOL并按Ctrl-Alt-D(在我上面列出的JavaScript中调用"调试器"提示符).接下来,我在VS Debugger debugger;的代码行中.此时,所有常用的调试功能都可用.请注意立即窗口面板和Watch1面板.此外,debugger我没有使用关键字对断点进行硬编码,而是可以使用Visual Studio Solution面板(一旦附加调试器)选择页面加载的一个JavaScript文件并以交互方式切换断点.

VS调试AOL


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

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

PS.并且感谢您就我无关的问题提出的自愿赏金,这是一个非常好的姿态.

  • 谢谢@Noseratio,我非常感谢! (2认同)