none
我的VS2008不能调试JS代码.怎么办?(前张贴被我不小心点错,给结了=。=) RRS feed

  • 问题

  • 我使用的编译器是VS2008,浏览器是IE7.0。并且在Internet选项中去掉了禁用脚本调试(Internet Explorer)。但是在.aspx页面调试时,<script>标签中加了断点,运行时并不中断。但是js代码确实被正确地运行了,仿佛中断被忽略了。怎么样才能让它中断?

    主要代码如下:

    <head runat="server">
        <script type="text/javascript">
        function myfun()
        {
            var num1 = 1 + 2;
            alert(navigator.userAgent);
            alert(num1);
        }
        </script>

    </head>

    <div onclick="myfun()">Test</div>

    就孟宪会老师的答案:在VS里的工具-选项-调试-实时-脚本打勾。然后在ie打开文件即可。这个方法无须将将工程设置为debug=true

    无须将工程设置为debug=true? 是必须还是无须? 另外怎么将工程设置为debug=true?

    另外一个问题?怎么将工程配置为调试模式?


    郭鹏
    2009年2月8日 16:54

答案

  • 无须将工程设置为debug=true?
    就是不需要设置debug=true

    怎么设置debug=true?
    在web.config里设置
    <compilation debug="true">

    另外,如果没有设置为debug="true",如果配置管理器(也就是图标栏里面有个小下拉菜单,写的是Debug,release,配置管理器…)设置为debug,按F5的时候会自动提示你设置为debug="true"



    孟宪会
    2009年2月9日 0:54
    版主
  • 你可以先在IE裡面打開要調試的站點,再在VS2008中attach到要調試的IE進程,其中調試類型選擇為JScript就可以了。這樣做無論你是否設置debug="true"之類的都可以,不過前提是IE沒有鈎選“禁用IE調試”。
    2009年2月10日 16:33
    版主
  • 在ie不禁用脚本调试的情况下。debugger;应该抛出错误,然后可以调用vs进行调试的。
    孟宪会
    2009年2月12日 10:53
    版主

全部回复

  • 无须将工程设置为debug=true?
    就是不需要设置debug=true

    怎么设置debug=true?
    在web.config里设置
    <compilation debug="true">

    另外,如果没有设置为debug="true",如果配置管理器(也就是图标栏里面有个小下拉菜单,写的是Debug,release,配置管理器…)设置为debug,按F5的时候会自动提示你设置为debug="true"



    孟宪会
    2009年2月9日 0:54
    版主
  •  我遇到N次你这样的情况,解决的办法是 如果你是2.0 版本asp.net网站的话,进入这个目录  C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files , 你关闭掉vs ,在任务管理器中结束w3w.exe 的进程,找到你对应的工程文件夹删除就可以了,如果提示删除不掉,重启机器删除,然后重新打开项目生成 ,就可以调试了,如果不能调试 你找我  呵呵
    2009年2月10日 4:45
  • 补充一句,你把脚本单独拿出去,放在一个js 脚本中,然后在<head>标签中引用,然后在js 脚本中设断点,这样是可以调试的
    2009年2月10日 4:53
  • 你可以先在IE裡面打開要調試的站點,再在VS2008中attach到要調試的IE進程,其中調試類型選擇為JScript就可以了。這樣做無論你是否設置debug="true"之類的都可以,不過前提是IE沒有鈎選“禁用IE調試”。
    2009年2月10日 16:33
    版主
  •  问题还是不能解决啊?web.config有这样段
      <compilation debug="true">
       <assemblies>
        <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
       </assemblies>
      </compilation>
    我也吧javascript放在了js文件中。加入断点并修改js代码如下:
        function myfun()
        {
            debugger;
            var num1 = 1 + 2;
            alert(num1);
        }
    添加断点还是无法中断也!
    另外,我的浏览器是360se 但是它是用的ie7内核。应该不影响吧。
    郭鹏
    2009年2月11日 13:07
  • 是有 影响啊
    孟宪会
    2009年2月11日 14:42
    版主
  •  改回IE为默认浏览器。仍然无法中断...郁闷了!
    郭鹏
    2009年2月12日 9:33
  • 在ie不禁用脚本调试的情况下。debugger;应该抛出错误,然后可以调用vs进行调试的。
    孟宪会
    2009年2月12日 10:53
    版主
  •  我发现一个问题。当我在javacript代码中加了断点。然后启动调试。在IE打开的情况下回到aspx页面。看到javascript代码中的断点符号中有个感叹号。描述是这样的:
    于 自 Default.aspx ,行11字符9生成行 (这句应该没什么用嘛)
    当前不会命中断点,未加载文档。(这句应该就是不会中断的原因。请问这个问题如何解决?需要加载什么文档?如何加载?)
    郭鹏
    2009年2月12日 11:35
  • 你好,你的第一个问题已经解决了。
    所以我建议你最好重新开一个新贴。
    这样能使每一个帖子的主题更加明确。
    我会mark相应的回答。谢谢你的理解!

    Microsoft Online Community Support
    2009年2月13日 8:42