art*_*ung 7 browser debugging webbrowser-control aol-desktop
我参与了一个网站的开发,该网站有大量用户通过AOL桌面v9.7 for Windows 查看我们的网站- 它自己生成浏览器窗口.在调试时,我没有通常可以调用的工具(例如Chrome的开发者控制台 ; Firebug; MSIE的F12开发人员工具).
当在AOL桌面内时,我似乎没有任何这些或类似的东西.是否有我可以调用的开发者模式或控制台,发掘?
在我的评论中,我的意思是,你可以使用一个非常不错的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)
这就是我所做的:


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

debugger;的代码行中.此时,所有常用的调试功能都可用.请注意立即窗口面板和Watch1面板.此外,debugger我没有使用关键字对断点进行硬编码,而是可以使用Visual Studio Solution面板(一旦附加调试器)选择页面加载的一个JavaScript文件并以交互方式切换断点.
现在,我没有Visual Studio Express 2012来验证它是否可以使用它,尽管我认为它应该是.我稍后会试一试.
[更新]几乎所有上述内容都适用于免费提供的Visual Studio 2012 Express for Desktop w/Update3,但有一个例外:即时调试选项似乎不存在.这不是一个show-stopper,因为它仍然可以附加到正在运行的AOL进程并以相同的方式调试当前加载的页面.
PS.并且感谢您就我无关的问题提出的自愿赏金,这是一个非常好的姿态.
| 归档时间: |
|
| 查看次数: |
2574 次 |
| 最近记录: |