使用PowerShell将VS2010附加到IE9以调试javascript
Attach VS2010 to IE9 with PowerShell to debug javascript
问题(来自nuget PowerShell):
- 启动IIS Express(网站位于文件夹中)[完成]
- 将IE9启动到URL[完成]
- 将当前的VisualStudio实例附加到IIS以调试.net代码[done]
- 将当前的VisualStudio实例附加到IE9以调试Javascript代码[问题]
状态:
目前,我能够从powershell(带有$DTE对象)将VS附加到IIS和IE9选项卡进程。然而,我无法调试javascript代码(我认为VS默认情况下只调试.net代码,而不调试Script)。
我看到了EnvDTE80.Transport,但我不知道如何在nuget PowerShell中使用它。你有调试js的想法吗?还是用完全不同的方法来解决这个问题?
更新(8月8日):我可以连接到IE9调试js,但我发现我的问题完全不同:
- 我使用powershell运行IIS Express
- 我使用powershell运行IE9
- 我可以得到"进程"的对象
但是我过早地将调试器附加到进程上,调试不起作用。
- 我尝试(即)启动IIS Express,启动IE9,先连接到IIS,然后连接到IE9。现在我可以调试脚本,但不能调试到IIS Express
- 在将DTE连接到进程之前,我尝试停止脚本5秒钟(StartSleep-s5),现在我可以调试IE js和IIS了。但我不喜欢睡眠解决方案(多少秒?)
我没有通过VS对象模型做到这一点,但通过GUI,当你连接到像IE9这样的运行进程时,你可以选择你想要的调试器类型。在这种情况下,您需要"脚本"调试器。如果这可以通过GUI来完成,那么我怀疑它可以通过对象模型来完成。VS中的宏记录器非常适合处理这样的事情。当我通过GUI执行附加步骤时,我打开了它,得到了这个:
Sub TemporaryMacro()
Try
Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
Dim dbgeng(1) As EnvDTE80.Engine
dbgeng(0) = trans.Engines.Item("Script")
Dim proc2 As EnvDTE80.Process2 = dbg2.GetProcesses(trans, "HILLR1").Item("iexplore.exe")
proc2.Attach2(dbgeng)
Catch ex As System.Exception
MsgBox(ex.Message)
End Try
End Sub
我使用firebug在Firefox中调试Javascript。Chrome也有类似的功能。从未在IE中尝试过,但我认为IE有一个Firebug版本。
检查这个问题:Firebug等价于InternetExplorer
相关文章:
- Angular JS IE9 Hashbang url rewriting
- 如何在vs2002中调试html页面
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 在IE9中的输入字段中输入焦点最近按钮
- 为什么jQuery 1.8不能在IE8和InternetExplorer9中使用?(截至2012年9月的IE9最新版本)
- 如何在visualstudio中调试web api时编辑javascript文件
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 注意:wp_enqueue_script调用不正确.在 Wordpress 调试模式下
- 如何调试Javascript代码或函数
- IE9的HTML5 Canvas getImageData()函数存在问题
- 使用JavaScript在IE9中获取数据列表选项
- 使用PowerShell将VS2010附加到IE9以调试javascript
- 从 IE10 回滚后无法在 VS 2012 和 IE9 中调试 JavaScript
- 是否可以在IE9中调试在iFrame中运行的Javascript
- Dojo需要AMD模块调试IE9
- 我应该使用IE9'还是IE8文档模式'调试IE8支持
- IE9:脚本只在调试器中工作,但在非调试时不工作
- 调试Javascript错误,只影响IE9
- 我怎样才能强制IE9“看到”?使用调试器时的最新javascript